wpf - WPF绑定通过?

  显示原文与译文双语对照的内容
0 0

我有一个,它承载另一个 WPF vxml,两者都已经制作并公开了各种依赖项属性。 现在我有一个,并且我需要将从内部vxml绑定到外部listviewitem的,以便在用户选择时通知。

这样说你们明白吗?

更新:我尝试了Xaml相对源代码绑定,但内部控件被用户交换,这意味着Xaml绑定指向错误的UserControl 。 想象一下Picture-in-Picture视频控制,用户可以用小图片交换大图片,但它始终是驱动IsSelected属性的大图片。

所以我的XAML看起来像这样

。xaml 。


<Grid>
 <MyControl1/>
</Grid>

。xaml 。"。


<Grid>
 <MyControl2 x:Name="myControl2"/>
</Grid>

每个控件的uml属性都可以很好地工作,当我直接绑定到它们时,我就可以将它们绑定在内。

我在下面的代码中尝试了一些变化。


var bind = new Binding("IsSelected");
bind.Source = myControl2;
bind.Mode = BindingMode.TwoWay;

this.SetBinding(MyControl1.IsSelectedProperty, bind);

有谁知道?

cheers!

Dave

时间: 原作者:

0 0

只需在XAML中使用 RelativeSource Binding 插件就可以轻松做到这一点。 尝试这个:


<Grid>
 <ChildControl x:Name="myControl2" IsSelected="{Binding IsSelected, RelativeSource={
 RelativeSource AncestorType={x:Type ParentControl}}}"/>
</Grid>


更新>>>

你已经在代码中请求这里 Binding 。 不幸的是,我从来没有在代码中做过这些 Binding,因这里我不能保证这是正确的,但它看起来正确:


Binding binding = new Binding("IsSelected");
RelativeSource relativeSource = new RelativeSource(RelativeSourceMode.FindAncestor);
relativeSource.AncestorType = typeof(ParentControl);
binding.RelativeSource = relativeSource;
SetBinding(ChildControl.IsSelectedProperty, binding);

原作者:
...