我可以将 WPF ComboBox 控件的可见性绑定到从命令获得的项目的 presence/absence 吗?

Can I bind the visibility of a WPF ComboBox control to the presence/absence of items obtained from a Command?

我能否将 WPF ComboBox 控件的可见性绑定到 presence/absence 从填充 ComboBoxItemsSource 中获得的项目的 presence/absence ] 属性?简而言之,在这样的情况下:

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

我可以将 Visibility 属性 的值绑定到 MyCommand.Result 中项目的存在或不存在相应地 hide/show 吗?

您可以将 Style 与绑定到来源 属性 的 DataTrigger 结合使用,例如:

<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>