将MainWindow中的元素属性绑定到嵌入式UserControl

时间:2018-11-12 15:11:37

标签: c# wpf binding

在我的UserControl中,我有一个DataGrid和一个Button。我可以轻松地将Button的IsEnabled属性绑定到DataGrid的SelectedItems.Count属性。

例如,在我的UserControl中,我有...

<Button IsEnabled="{Binding ElementName=MyDataGrid, Path=SelectedItems.Count}" />

但是,我想对MainWindow中的Button进行同样的操作,在其中我也嵌入了相同的UserControl。

我想这样做,但是不起作用:

<Button IsEnabled="{Binding ElementName=MyUserControl, Path=MyDataGrid.SelectedItems.Count}" />

是否有一种方法可以纯粹在XAML中执行此操作,还是需要在ViewModel中创建一个反映DataGrid的SelectedItems.Count属性并将其绑定到MainWindow中的Button的属性?

谢谢!

1 个答案:

答案 0 :(得分:0)

在UserControl中定义公共属性(以保留选定的项目),并将其绑定到datagrid的SelectedItem, 现在,您将可以通过ElementName和XPath或Path在主窗口中获取公共属性。