내가

2013-04-20 4 views
14

내 ListView에 모습 WPF에서 목록보기 항목 HarfNotu 값에 따라 ListView에 항목의 배경색을 변경하는 방법 : http://oi36.tinypic.com/ek5n3o.jpg내가

내 목록보기 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 코드 :

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

시도 :

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

그러나 첫 번째 라인 예외 :

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

가 어떻게이 문제를 해결?

답변

62

당신은 ListViewItem 직접 XAML에서 Style

예 :

당신의 "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> 
    ... 

Harf "어떤 ListView 행 시도 할 수 있습니다 가정 "1의 값은"빨간색 "이됩니다 Background

+1

정말 고마워요. 하지만 내 평판 포인트가 충분하지 않기 때문에 당신의 대답을 투표 할 수 없습니다. –

+2

당신은 이것을 달성하기 위해 얼마나 많은 시간을 할애했는지 모른다. 당신은 절대적으로 천재입니다. 정말 고마워요! –

+1

이것은 굉장합니다. 보너스 시간 절약 : 바인딩 할 속성이 '공개'인지 확인하십시오. –