1
我有一個ViewModel,提供項目的集合。還有一個ActiveItem propery。 Items集合可能包含或不包含ActiveItem。WPF突出顯示項目
我想要做的(在XAML中)是將項目顯示爲一個列表並突出顯示任何等於活動項目的項目。
我曾嘗試沒有成功如下:
<ListBox ItemsSource="{Binding Items}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border x:Name="outerBorder" Background="Green">
<TextBlock Text="{Binding ItemId}" />
</Border>
<DataTemplate.Triggers>
<DataTrigger
Binding="{Binding
Path=DataContext.Item.ItemId,
RelativeSource={RelativeSource TemplatedParent},
Mode=Default}"
Value="{Binding
Path=DataContext.ActiveItem.ItemId,
RelativeSource={RelativeSource AncestorType=Window},
Mode=Default}"
>
<Setter TargetName="outerBorder"
Property="Background" Value="Orange" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
正如你可以看到我試圖使用DataTrigger與ActiveItem當前項目匹配,但它不工作。我認爲這與我嘗試使用DataTrigger.Value中的綁定有關 - 我還沒有看到任何其他示例。
任何想法,我可能會使這項工作?
感謝,
丹尼爾
因此,而不是直接暴露項目(模型對象),我應該創建一個ItemViewModel並暴露?我會不情願直接添加一個IsActive屬性到我的Item模型對象。 – djskinner 2010-01-26 15:18:13