我如何根据列表视图项目在wpf中的HarfNotu值更改ListView项目背景颜色

Zaf*_*yan 16 wpf listviewitem

我的ListView看起来像:http: //oi36.tinypic.com/ek5n3o.jpg

我的listview xaml:

<ListView  Name="notListView" Width="550" HorizontalAlignment="Left">
        <ListView.View>
        <GridView AllowsColumnReorder="true">
            <GridViewColumn Header="Ders Kodu" Width="100" DisplayMemberBinding="{Binding Path=DersKodu}" />
            <GridViewColumn Header="Ders Ad?" Width="200" DisplayMemberBinding="{Binding Path=DersAdi}" />
            <GridViewColumn Header="Vize" Width="50" DisplayMemberBinding="{Binding Path=Vize}" />
            <GridViewColumn Header="Final" Width="50" DisplayMemberBinding="{Binding Path=Final}" />
            <GridViewColumn Header="Ortalama" Width="60" DisplayMemberBinding="{Binding Path=Ortalama}" />
            <GridViewColumn Header="Harf Notu" Width="60" DisplayMemberBinding="{Binding Path=Harf}" />
        </GridView>
    </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)

我的.cs代码:

notListView.ItemsSource = notGoruntule(1, 1); // notGoruntule() function returns an Arraylist, which contains my "Notlar" objects.
Run Code Online (Sandbox Code Playgroud)

我试过这个:

ListViewItem lvitem = (ListViewItem)notListView.Items[0];
lvitem.Background = Brushes.Red;
Run Code Online (Sandbox Code Playgroud)

但第一线抛出:

Unable to cast object of type 'OBS_Interface_5.Classes.Notlar' to type 'System.Windows.Controls.ListViewItem'.
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

Viv*_*Viv 72

您可以StyleListViewItem在XAML直接,

例:

假设你的"Harf"变量是一个字符串,你可以试试

<ListView Name="notListView"
          Width="550"
          HorizontalAlignment="Left">
  <ListView.Resources>
    <Style TargetType="{x:Type ListViewItem}">
      <Style.Triggers>
        <DataTrigger Binding="{Binding Harf}"
                      Value="1">
          <Setter Property="Background"
                  Value="Red" />
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </ListView.Resources>
  ...
Run Code Online (Sandbox Code Playgroud)

现在任何ListView"Harf"值为1的行都会有一个"红色"Background

  • 你不知道我花了多少时间来实现这个目标.你绝对是天才.非常感谢! (2认同)
  • 这太棒了.额外节省时间:确保绑定的属性是"public" (2认同)