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
,还是更喜欢创建视图模型的开销
您还可以采取其他一些方法,创造性地使用附加属性或转换器,但它们将比仅实现视图模型更加复杂和困难