2010-06-23 158 views
0

我正在使用MVVM和WPF。WPF ListView行背景颜色

VM包含 -

  1. 任务(其中任务是具有公共性质任务id,TaskTime和TaskDetails类)
  2. CurrentTaskId

我可以设置背景色的可观察集合每行使用下列方法之一

  1. 使用ListView ItemContainerSty乐触发或
  2. 使用的ListView ItemContainerStyleSelector

现在我想将所有的行LightBlue并且是Task.TaskId == VM.CurrentTaskId条件的背景色。我如何实现这一目标?

我没有使用数据触发的风格,因为

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

是有效的,但使用值绑定是无效的,对

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

我能线的东西来实现它使用StyleSelector为特定行实现交替行颜色和特定颜色,但又如何找到CurrentTaskId?

另外,如何在每次CurrentTaskId更改时实现更改背景颜色的功能?

回答

0

此使用IMultiValueConverterMultiBinding

1

你应该尝试使用您的数据触发多结合解决。

看到这个问题的类似解决方案 - WPF DataTrigger - Setting ListBoxItem IsSelected

+0

是的,这正是我解决它的方法。看到我上面的答案。感谢您的链接+1 – byte 2010-06-24 09:01:25