Как динамически изменить цвет фона ListViewItem? - PullRequest
1 голос
/ 20 июля 2010

У меня есть класс BookItemView для шаблона данных 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();
        }
    }

Как я могу установить специальный цвет фона для некоторых ListViewItems в ListView?

Ответы [ 2 ]

1 голос
/ 20 июля 2010

Определите желаемое свойство для того, что вы хотите изменить фон, и в DataTemplate, определенном для ListViewItem, инициируйте изменение фона на конкретное значение вашего свойства.

1 голос
/ 20 июля 2010

ItemContainerStyle твой друг. Например:

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