【问题标题】:WPF: Change background on some combobox itemsWPF:更改某些组合框项目的背景
【发布时间】:2011-03-24 18:34:03
【问题描述】:

我正在尝试更改组合框中某些满足条件的项目的背景

<ComboBox ItemsSource="{Binding Path=Model.Names, Mode=OneWay}" SelectedValue="{Binding Path=SelectedCompanyName}" DisplayMemberPath="Alias" />

问题是“别名”保存在两个不同的位置(按公司和按顺序),如果它们不匹配,我们想突出显示这一点。

我想做这样的事情:

<Style>...
    <DataTrigger Binding="{Binding Path=isMismatch}" Value="True>
        <Setter Property="Background" Value="Red" />...

感谢任何帮助。

【问题讨论】:

    标签: c# wpf mvvm combobox


    【解决方案1】:

    您需要像这样创建自定义数据模板:

    <ComboBox Width="300" Height="30" ItemsSource="{Binding Path=Model.Names, Mode=OneWay}">
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <Grid x:Name="templateGrid">
                    <TextBox Text="{Binding Name}" />
                </Grid>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding isMismatch}" Value="True">
                       <Setter TargetName="templateGrid" 
                               Property="Background" Value="Red" />         
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
    

    【讨论】:

    • 工作谢谢。新问题是 Alias 和 IsMismatch 不在同一个地方... :)
    【解决方案2】:

    如果您想根据两个属性的值突出显示选择,我认为您可以使用MultiValueConverterMultiBinding

    【讨论】:

      猜你喜欢
      • 2014-09-17
      • 2022-12-06
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2018-10-05
      相关资源
      最近更新 更多