首页 > 解决方案 > 我可以将 WPF ComboBox 控件的可见性绑定到从命令获得的项目的存在/不存在吗?

问题描述

我可以将 WPF 控件的可见性绑定到从填充'属性ComboBox的 a 获得的项目的存在/不存在吗?简而言之,在这样的情况下:CommandComboBoxItemsSource

<ComboBox ItemsSource="{Binding MyCommand.Result, Mode=OneWay}" Visibility="..." />

我可以将Visibility属性的值绑定到内部是否存在项目MyCommand.Result以相应地隐藏/显示它吗?

标签: c#wpfxamldata-bindingcombobox

解决方案


您可以将 aStyleDataTrigger绑定到源属性的 a 一起使用,例如:

<ComboBox ItemsSource="{Binding MyCommand.Result, Mode=OneWay}">
    <ComboBox.Style>
        <Style TargetType="ComboBox">
            <Style.Triggers>
                <DataTrigger Binding="{Binding MyCommand.Result.Count}" Value="0">
                    <Setter Property="Visibility" Value="Collapsed" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ComboBox.Style>
</ComboBox>

或者您可以绑定到HasItems控件本身的属性:

<ComboBox ItemsSource="{Binding MyCommand.Result, Mode=OneWay}">
    <ComboBox.Style>
        <Style TargetType="ComboBox">
            <Style.Triggers>
                <Trigger Property="HasItems" Value="False">
                    <Setter Property="Visibility" Value="Collapsed" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ComboBox.Style>
</ComboBox>

推荐阅读