我目前正在创建一个充当任务跟踪器的Windows 8.1商店应用。我目前的问题是我想更改listview中列出的项目来表示它们的优先级。我想通过改变背景颜色来做到这一点。 IE:红色=高,蓝色=中等,绿色=低。
ListBoxItems本身跟随一个模板,下面是我想要根据x更改的相关文本字段:Name = priorityBind。
<StackPanel Orientation="Horizontal">
<TextBlock Text="Priority: " Margin="10, 0, 10, 10" />
<TextBlock x:Name="priorityBind" Text="{Binding Path=Priority}" Margin="10, 0, 10, 10"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Notes: " Margin="10, 0, 10, 10" />
<TextBlock Text="{Binding Path=Notes}" Margin="10, 0, 10, 10"/>
</StackPanel>
</StackPanel>
</Grid>
</DataTemplate>
我能找到的所有示例似乎都是使用过时的Store Apps版本完成的。设置触发器似乎是建议的路线,但它似乎不再适用于更新版本。下面是我的ListView代码的片段。如果优先级文本框的值为“低”,如何修改它以使其仅将背景颜色更新为绿色?
<ListView x:Name="eventsListView" Grid.Row="1" Grid.Column="1"
ItemTemplate="{StaticResource eventTemplate}">
<ListView.Resources>
<Style TargetType="ListViewItem">
<Style.Setters>
<Setter Property="BorderBrush"
Value="White" />
<Setter Property="BorderThickness"
Value="5"/>
<Setter Property="Background"
Value="Green"/>
</Style.Setters>
</Style>
</ListView.Resources>
</ListView>
答案 0 :(得分:1)
您可以使用ItemTemplateSelector
指定哪个优先级应使用哪个tempalteItemTemplateSelector允许ListView根据您作为参数提供的属性呈现不同的模板。这是AFAIK的最佳实践解决方案。