如何将一个控件的属性绑定到另一个控件?

时间:2010-11-22 10:59:23

标签: c# .net wpf xaml

我有一个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>

1 个答案:

答案 0 :(得分:1)

ControlB内的按钮无法正常了解控件ControlB之外的内容。一种可能的解决方案是将布尔依赖属性添加到ControlB,如IsConnectable。在控件ControlA的XAML中,使用路径将属性绑定到dataGridBackup,就像您一样。在控件的{XAML} ControlB中,将按钮的IsEnabled属性绑定到IsConnectable的{​​{1}}。