我正在开发一个基于 XAML 的 C# 项目。
我有一个组合框,其中大多数只包含一个条目,但在某些情况下,它可能包含更多条目。
我想警告用户可能存在多个条目。我知道我需要一个转换器,但我只是想知道这样的东西是否已经存在。
目前,我的组合框如下所示:
<ComboBox x:Name="cmb_Locations"
Grid.Column="1" Grid.Row="1"
Margin="2"
ItemsSource="{Binding FilteredLocations}"
SelectedItem="{Binding SelectedLocation, Mode=TwoWay}"
DisplayMemberPath="Name"
Background="{converters:RatioConverter}">
</ComboBox>
(提到的转换器只是假的。)
有人知道这样的简单转换器吗?
您可以为此使用触发器。在下面的示例中,如果有多个项目,则文本始终为红色;如果只有一项,则文本始终为黑色。当然,只是颜色变化不是很直观,但它给了你一个起点:
<ComboBox>
<ComboBox.Style>
<Style TargetType="ComboBox">
<Setter Property="Foreground" Value="Red" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Items.Count}" Value="1">
<Setter Property="Foreground" Value="Black" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
<ComboBoxItem>1</ComboBoxItem>
<ComboBoxItem>2</ComboBoxItem>
</ComboBox>