C# WPF子组突出显示

C# WPF子组突出显示,c#,wpf,xaml,listbox,highlighting,C#,Wpf,Xaml,Listbox,Highlighting,我正在开发一个工具,可以同时编辑多个数据库对象,我很想了解你们对突出显示方案的想法。 在我的视图模型中,我有一个辖区的集合,辖区,与用户选择编辑的任何项目关联。我还有一个由所有选定项目共享的司法管辖区子集合“CommonJuris”。我的问题是:是否有一种简单的方法可以用完整集合填充列表框,并突出显示子集合中的项目? 目前,我的辖区模型中有一个bool属性,IsCommon。我真的不希望在模型中出现这种情况,但我还没有找到更好的解决方案辖区没有视图模型,因为这将是其中唯一的内容 下面是我对列表框

我正在开发一个工具,可以同时编辑多个数据库对象,我很想了解你们对突出显示方案的想法。
在我的
视图模型
中,我有一个
辖区
的集合,
辖区
,与用户选择编辑的任何项目关联。我还有一个由所有选定项目共享的司法管辖区子集合“CommonJuris”。我的问题是:是否有一种简单的方法可以用完整集合填充
列表框
,并突出显示子集合中的项目?
目前,我的
辖区模型中有一个bool属性,
IsCommon
。我真的不希望在
模型中出现这种情况,但我还没有找到更好的解决方案<代码>辖区
没有
视图模型
,因为这将是其中唯一的内容

下面是我对列表框本身的XAML:

<ListBox Grid.Row="1" Grid.Column="2" ItemContainerStyle="{StaticResource JuriAndTT}"
      ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
      HorizontalContentAlignment="Stretch"
      ItemsSource="{Binding Juris}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Name}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

风格:

   <Style TargetType="{x:Type ListBoxItem}" x:Key="JuriAndTT">
        <Style.Triggers>
            <DataTrigger Binding="{Binding IsCommon}" Value="True">
                <Setter Property="Background" Value="PowderBlue"/>
                <Setter Property="Foreground" Value="Black"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>

我想这是您自己回答的——您没有创建视图模型,因为它只有一个属性;相反,您用该属性污染了您的模型

您必须权衡这两个因素,并确定您是否更喜欢模型中的
IsCommon
,还是更喜欢创建视图模型的开销

您还可以采取其他一些方法,创造性地使用附加属性或转换器,但它们将比仅实现视图模型更加复杂和困难