WPF:更改某些组合框项目的背景

时间:2010-08-03 14:28:49

标签: c# wpf mvvm combobox

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

<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" />...

感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

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