Как связать свойство одного элемента управления с другим? - PullRequest
2 голосов
/ 22 ноября 2010

У меня есть элемент управления 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 к столбцу Connectable моей таблицы в controlA.

Я могу заставить его работать, когда у меня есть элементы управления на той же странице, но не в сценарии aboce. Я пробовал с

<Button 
    IsEnabled="{Binding ElementName=dataGridBackup, Path=SelectedItem.Connectable}">
</Button>

1 Ответ

1 голос
/ 22 ноября 2010

Кнопка внутри ControlB не может нормально узнать, что находится за пределами элемента управления ControlB.Одно из возможных решений - добавить логическое свойство зависимости к ControlB, как IsConnectable.В XAML элемента управления ControlA свяжите свойство с dataGridBackup путем, как вы это сделали.В XAML элемента управления ControlB свяжите свойство IsEnabled кнопки с IsConnectable из ControlB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...