我有一个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上的Grid的Connectable列。
当我在同一页面上有控件而不是在aboce场景中时,我可以使它工作。我试过
<Button
IsEnabled="{Binding ElementName=dataGridBackup, Path=SelectedItem.Connectable}">
</Button>
答案 0 :(得分:1)
ControlB
内的按钮无法正常了解控件ControlB
之外的内容。一种可能的解决方案是将布尔依赖属性添加到ControlB
,如IsConnectable
。在控件ControlA
的XAML中,使用路径将属性绑定到dataGridBackup
,就像您一样。在控件的{XAML} ControlB
中,将按钮的IsEnabled
属性绑定到IsConnectable
的{{1}}。