如何显示组合框有多个条目?

问题描述 投票:0回答:1

我正在开发一个基于 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>

(提到的转换器只是假的。)

有人知道这样的简单转换器吗?

c# xaml combobox converters
1个回答
0
投票

您可以为此使用触发器。在下面的示例中,如果有多个项目,则文本始终为红色;如果只有一项,则文本始终为黑色。当然,只是颜色变化不是很直观,但它给了你一个起点:

<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>
© www.soinside.com 2019 - 2024. All rights reserved.