c# - 不使用转换器的条件绑定(bind)

标签 c# wpf mvvm

我如何实现以下目标:

    <ComboBox 
 IsEnabled="{Binding bVisibilty = AnotherCollection.Count > 0 ? true:false}"/>

我可以使用将计数转换为 bool 值的转换器,但是有没有比到处过度使用转换器更好的方法。

最佳答案

您可以像这样使用样式触发器:

  <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

关于c# - 不使用转换器的条件绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16924196/

相关文章:

c# - 如何使用 RichTextBox 控件将\line 添加到 RTF

c# - 使用 lambda 表达式查询和转换数据

wpf - 将列表项设置为增长到包含的 ListView 的宽度 - WPF

WPF。获取点击的行项目值

c# - 如何调试命令

android - 什么时候应该使用 "spring for android"?

c# - 在不影响其他开发人员的情况下在 .net 4.0 中使用 codeContracts

c# - 如何使用存储过程计算将整数值插入文本框?

android - 如何在MVVM中重试API调用

wpf - 将 WPF TreeView 与通用 View 模型绑定(bind)