我可以将 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 从填充 ComboBox
的 ItemsSource
中获得的项目的 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>
我能否将 WPF ComboBox
控件的可见性绑定到 presence/absence 从填充 ComboBox
的 ItemsSource
中获得的项目的 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>