我有一个WPF控件(ControlA),它引用了另一个控件(ControlB),如下所示:
<Grid>
<controls:ControlB x:Name="ControlB" />
<my:DataGrid
x:Name="dataGridBackup"
ItemsSource="{Binding}"
AutoGenerateColumns="False" >
<my:DataGrid.Columns>
<my:DataGridCheckBoxColumn
Header="Connectable"
Binding="{Binding Connectable}" />
</my:DataGrid.Columns>
</my:DataGrid>
</Grid>
现在在ControlB中,我有一个按钮,我想将IsEnabled属性绑定到controlA上我的网格的Connectable列。
当我在同一页面上拥有控件时,而在没有上述场景的情况下,我可以使它工作。我尝试过
<Button
IsEnabled="{Binding ElementName=dataGridBackup, Path=SelectedItem.Connectable}">
</Button>
最佳答案
ControlB
中的按钮没有正常的方法来知道控件ControlB
之外的内容。一种可能的解决方案是像ControlB
一样向IsConnectable
添加布尔依赖项属性。在控件ControlA
的XAML中,像以前一样,使用路径将属性绑定到dataGridBackup
。在控件ControlB
的XAML中,将按钮的IsEnabled
属性绑定到IsConnectable
的ControlB
。