Привязать включенное свойство пользовательского элемента управления WPF к дочерним элементам управления - PullRequest
0 голосов
/ 16 ноября 2018

Допустим, у меня есть UserControl с одним или несколькими дочерними элементами управления.

Как я могу отключить эти дочерние элементы управления, когда UserControl отключен, и включить их, когда он включен?Мой UserControl не имеет ViewModel, но просто использует код позади, потому что это довольно просто.

Я попытался сделать что-то вроде этого:

<UserControl>
    <ListBox IsEnabled="{Binding IsEnabled}" >
    </ListBox>
</UserControl>

, но это не такработа.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Я понял, в чем была моя ошибка.

Я пытался привязать свойство IsEnabled в экземпляре UserControl к значению в моем тексте данных.

Однако при привязке к UserControl вы должны сделать что-то вроде этого:

IsEnabled="{Binding DataContext.IsWatermarkEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel}}"

Это решило проблему.

0 голосов
/ 16 ноября 2018

В вашем ListBox ItemContainerStyle добавьте привязку

<ListBox.ItemContainerStyle>
    <Style TargetType="ListBoxItem">
        <Setter Property="IsEnabled"
                Value="{Binding Path=IsEnabled,
                        RelativeSource={RelativeSource AncestorType=ListBox}}"/>
    </Style>
</ListBox.ItemContainerStyle>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...