WPF子组突出显示

时间:2011-11-21 21:19:20

标签: c# wpf xaml listbox highlighting

我正在构建一个工具来同时编辑多个数据库对象,我很想让你们对突出显示方案有所了解。
在我的ViewModel中,我有一个Juris的{​​{1}}集合,与用户选择编辑的任何项目相关联。我还有一个由所有选定项目“CommonJuris”共享的司法管辖区子集。我的问题是:是否有一种简单的方法可以使用完整集合填充Jurisdictions,并突出显示子集合中的项目?
目前我的ListBox中有一个bool属性IsCommon。我真的不希望Jurisdiction Model中有这个,但我还没有找到更好的解决方案。 Model没有Jurisdiction,因为这是唯一的内容。

这是我对ListBox本身的XAML:

ViewModel

风格:

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

1 个答案:

答案 0 :(得分:2)

我认为你自己回答了这个问题 - 你还没有创建一个视图模型,因为它只有一个属性;相反,你已经用该属性污染了你的模型。

你必须权衡两者,并确定你是否更熟悉模型中的IsCommon或创建视图模型的开销。

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