C# 在选择时更改listview中文本块的字体颜色

C# 在选择时更改listview中文本块的字体颜色,c#,xaml,windows-8,datatemplate,listviewitem,C#,Xaml,Windows 8,Datatemplate,Listviewitem,我正在尝试更改listview项选中时listview项的文本块的颜色。listview项的数据模板如下所示: <DataTemplate x:Key="DataTemplate"> <Grid Height="47" VerticalAlignment="Stretch" Width="{Binding tbIng.Width}"> <TextBlock x:Name="tbIng" FontFamily="{StaticResource

我正在尝试更改listview项选中时listview项的文本块的颜色。listview项的数据模板如下所示:

  <DataTemplate x:Key="DataTemplate">
    <Grid Height="47" VerticalAlignment="Stretch" Width="{Binding tbIng.Width}">
      <TextBlock x:Name="tbIng" FontFamily="{StaticResource Neutra2Text-Book}" FontSize="23" Text="50g of butter" HorizontalAlignment="Left" VerticalAlignment="Center" Padding="2"/>
    </Grid> 
  </DataTemplate>

我试图使用blend来查找我需要更改的内容,使用states窗口,但我似乎找不到textblock。如果我右键单击listview->edit template->edit current,那么我将获得数据模板,但无法使用状态窗口。这是一个Windows8应用程序


我想在xaml中实现这一点,而不是代码

我可以想到两条路径:

  • 您可以使用独立的全局/公共变量并绑定到它。因此,当
    ViewState
    发生更改时,
    DataTemplate
    TextBlock
    背景将根据此变量改变颜色
  • 将变量传入
    Binding
    对象本身即可。例如,如果您绑定到表中的行,只需添加另一个值为
    TextBlock
    background的列并绑定到它

从Blend,您可以更改生成的项目容器(ItemContainerStyle),以覆盖ListView项目的所有状态和属性。 要执行此操作,请使用上部菜单,如图所示:

并编辑与按下、选定等相关的状态


在StandardStyles.xaml文件中添加以下代码并更改所需颜色:

<SolidColorBrush x:Key="ListViewItemSelectedForegroundThemeBrush" Color="Red" />