不使用转换器的条件绑定

时间:2013-06-04 17:44:03

标签: c# wpf mvvm

我如何实现以下目标:

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

我可以使用一个将转换计数转换为boolen的转换器,但是有比在所有地方过度使用转换器更好的方法。

2 个答案:

答案 0 :(得分:3)

您可以使用样式触发器:

  <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,因此每次添加项目时都会通知用户界面<删除它

答案 1 :(得分:2)

您可以绑定到ViewModel上的Property,并将boolean和INPC逻辑放在viewmodel中