2013-04-20 15 views
14

mio ListView assomiglia: http://oi36.tinypic.com/ek5n3o.jpgCome a cambiare ListView Articolo Colore sfondo conformemente al punto ListView valore HarfNotu in WPF

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

Il mio codice .cs:

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

Ho provato questo:

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

Ma prima linea getta:

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

Come posso risolvere questo problema?

risposta

62

È possibile Style il ListViewItem in XAML direttamente,

Esempio:

Assumendo che il "Harf" variabile è una stringa, si può provare

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

Ora, qualsiasi ListView Row con "Harf "Il valore di 1 avrà un" Rosso "Background

+1

Ti ringrazio tanto. Ma non posso votare la tua risposta, perché i miei punti di reputazione non bastano. –

+2

Non hai idea di quanto ho speso il mio tempo per raggiungere questo obiettivo. Sei assolutamente geniale. Grazie mille! –

+1

Questo è fantastico. Risparmio di tempo bonus: assicurati che la proprietà a cui ti colleghi sia 'pubblica' –