2010-07-20 126 views
1

我有一個BookItemView類,用於ListViewItem的數據模板。如何動態更改ListViewItem的背景顏色?

/// <summary> 
    /// Represent a class to keep every items view. 
    /// </summary> 
    public class BookItemView : ICloneable 
    { 
     /// <summary> 
     /// Create a new instance of BookItemView. 
     /// </summary> 
     public BookItemView() 
     { 
      this.ID = Guid.NewGuid(); 
     } 

     /// <summary> 
     /// Gets current instance unique id. 
     /// </summary> 
     public Guid ID 
     { 
      get; 
      private set; 
     } 

     /// <summary> 
     /// Gets or sets items title. 
     /// </summary> 
     public string Title { get; set; } 

     /// <summary> 
     /// Gets or sets items subtitle. 
     /// </summary> 
     public string Subtitle { get; set; } 

     /// <summary> 
     /// Gets or sets items description. 
     /// </summary> 
     public string Description { get; set; } 

     /// <summary> 
     /// Gets or sets items icon. 
     /// </summary> 
     public ImageSource Icon { get; set; } 

     /// <summary> 
     /// Gets or sets a value which indicate is item marked or not. 
     /// </summary> 
     public bool Marked { get; set; } 

     /// <summary> 
     /// Gets or sets a list of BookItemView. 
     /// </summary> 
     public ObservableCollection<BookItemView> BookItems { get; set; } 

     /// <summary> 
     /// Create a shallow copy of current object. 
     /// </summary> 
     /// <returns>A shallow copy of current object.</returns> 
     public object Clone() 
     { 
      return base.MemberwiseClone(); 
     } 
    } 

我該如何爲ListView中的某些ListViewItems設置特殊背景顏色?

回答

1

ItemContainerStyle是你的朋友。例如:

<ListView> 
    <ListView.ItemContainerStyle> 
     <Setter Property="Background" Value="{Binding Marked, Converter={StaticResource MarkedConverter}}"/> 
    </ListView.ItemContainerStyle> 
</ListView> 
1

定義你想改變的背景是什麼,並在ListViewItem的觸發改變你的財產的具體價值背景定義的DataTemplate所需特性。