我有ObservableCollection
个自定义对象通过DataContext
绑定到ListBox
。
ListBox
a旁边有一组绑定到当前项目字段的TextBox
。 (即Text={Binding Path=/SomeField}
)
当TextBoxes
的{{1}}为空时,如何禁用/灰显记录详细信息DataContext
?
答案 0 :(得分:0)
这个答案假定您正在使用mvvm并拥有一个视图模型来备份您的视图 - 我将在您的viewmodel中创建一个只读bool属性,如果您的可观察集合的计数>则返回true。 0
然后,您可以将bool绑定到必要文本框的isEnabled属性,从而根据您的可观察集合的值启用或禁用它们。
编辑 - 根据BenjaminPaul在下面的评论,必须为您的可观察集合处理更改事件,然后您应该在bool属性上调用propertyChanged以确保更新并传递回视图。
答案 1 :(得分:0)
你可以用一种风格来做:
<Style TargetType="TextBox">
<Style.Triggers>
<!-- When the collection itself is null -->
<DataTrigger Binding="{Binding }" Value="{x:Null}">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
<!-- When the collection has no items -->
<DataTrigger Binding="{Binding Count}" Value="0">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>