我如何实现以下目标:
<ComboBox
IsEnabled="{Binding bVisibilty = AnotherCollection.Count > 0 ? true:false}"/>
我可以使用将计数转换为布尔值的转换器,但是有没有比到处过度使用转换器更好的方法。
您可以像这样使用样式触发器:
<ComboBox >
<ComboBox.Style>
<Style TargetType="ComboBox">
<Style.Triggers>
<DataTrigger Binding="{Binding AnotherCollection.Count}" Value="0">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
显然,AnotherCollection 需要是 ObservableCollection,因此每次将项目添加\删除时都会通知 UI
您可以绑定到 ViewModel 上的属性并将布尔值和 INPC 逻辑放在视图模型中