2013-04-20 33 views
14

ListView của tôi trông giống như: http://oi36.tinypic.com/ek5n3o.jpgLàm thế nào tôi thay đổi ListView mục Background Color theo mục listview HarfNotu giá trị trong WPF

My 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> 

cs My mã:

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

Tôi đã thử điều này:

ListViewItem lvitem = (ListViewItem)notListView.Items[0]; 
lvitem.Background = Brushes.Red; 

Nhưng trước tiên dòng ném:

Unable to cast object of type 'OBS_Interface_5.Classes.Notlar' to type 'System.Windows.Controls.ListViewItem'. 

Làm thế nào để tôi giải quyết vấn đề này?

Trả lời

62

Bạn có thể Style các ListViewItem trong XAML trực tiếp,

Ví dụ:

Giả sử bạn "Harf" biến là một chuỗi, bạn có thể thử

<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> 
    ... 

Bây giờ bất kỳ ListView Row với "Harf "Giá trị 1 sẽ có" Màu đỏ "Background

+1

Tôi cảm ơn bạn rất nhiều. Nhưng tôi không thể bỏ phiếu cho câu trả lời của bạn, bởi vì điểm danh tiếng của tôi là không đủ. –

+2

Bạn không biết mình đã dành bao nhiêu thời gian để đạt được điều này. Bạn hoàn toàn là thiên tài. Cảm ơn bạn rất nhiều! –

+1

Điều này thật tuyệt vời. Tiết kiệm thời gian thưởng: đảm bảo thuộc tính bạn liên kết là 'công khai' –

Các vấn đề liên quan