假设我有一个带有一个或多个子控件的UserControl。
如何在禁用UserControl时禁用这些子控件,并在启用它们时启用它们?我的UserControl没有ViewModel,但只是使用了后台代码,因为它非常简单。
我试图做这样的事情:
<UserControl>
<ListBox IsEnabled="{Binding IsEnabled}" >
</ListBox>
</UserControl>
但它不起作用。
答案 0 :(得分:0)
在列表框的ItemContainerStyle
上添加绑定
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="IsEnabled"
Value="{Binding Path=IsEnabled,
RelativeSource={RelativeSource AncestorType=ListBox}}"/>
</Style>
</ListBox.ItemContainerStyle>
答案 1 :(得分:0)
我意识到我的错误是什么。
我试图将UserControl实例上的IsEnabled属性绑定到我的数据上下文中的值。
但是,绑定到UserControl时,您必须执行以下操作:
IsEnabled="{Binding DataContext.IsWatermarkEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel}}"
这解决了问题。