WPF ListView行背景颜色

时间:2010-06-23 14:59:06

标签: wpf listview mvvm

我正在使用MVVM和WPF。

VM包含 -

  1. 一个Observable Task任务集合(其中Task是一个具有公共属性TaskId,TaskTime和TaskDetails的类)
  2. CurrentTaskId
  3. 我可以使用以下方法之一设置每行的背景颜色

    1. 使用ListView ItemContainerStyle Trigger OR
    2. 使用ListView ItemContainerStyleSelector
    3. 现在我想将所有行的背景颜色设置为LightBlue,条件为Task.TaskId == VM.CurrentTaskId。我该怎么做?

      我无法使用样式上的数据触发器实现它,因为

      <DataTrigger Binding="{Binding TaskId}" Value="1001">
      

      是有效的但是使用Binding for Value是无效的,有些是

      <DataTrigger Binding="{Binding TaskId}" Value="{Binding CurrentTaskId}">
      

      我能够使用StyleSelector为某些行实现备用行颜色和特定颜色,但我又如何找到CurrentTaskId?

      每当CurrentTaskId发生变化时,我如何实现改变背景颜色的功能?

2 个答案:

答案 0 :(得分:1)

您应该尝试在数据触发器中使用多重绑定。

请参阅此问题以获得类似的解决方案 - WPF DataTrigger - Setting ListBoxItem IsSelected

答案 1 :(得分:0)

使用IMultiValueConverterMultiBinding

解决了这个问题