WPF Изменение цвета выделения ListboxItem при выборе

У меня проблема с настройкой HighlightBrushKeyдля SelectedItemдля Listboxв WPF. Мое намерение состояло в том, чтобы установить цвет элемента в зависимости от заданного логического значения, лежащего в коде.

Я пробовал следующие шаги:

  • Внедрение преобразователя, проверка логического значения и возврат правильного цвета.

    Пример:

    <лента:RibbonWindow.Resources>
     
     <Стиль x:Key="listBoxStyle" TargetType="{x:Type ListBoxItem}">
     <Стиль.Ресурсы>
     
     
     
     
    
    

    Проблема здесь заключалась в том, что метод Convert вызывался только один раз, а мне нужно, чтобы Converter вызывался каждый раз, когда я выбираю элемент и проверяю логическое значение. Как триггер, но с "HighlightBrushKey".

    Преобразователь:

    общедоступный объект Convert(значение объекта, Type targetType,
    параметр объекта, культура CultureInfo)
    {
    если (текущее поле == ноль)
    вернуть Кисти.Желтый;
    если (currentField.Save)
    вернуть Brushes.LightGreen;
    еще
    вернуть Кисти.Желтый;
    }
    
  • Следующей моей идеей было установить «HighlightBrushKey» на «Transparent» и изменить item.Backgroundвручную в коде. Проблема заключалась в том, что мои элементы стали белыми, а цвет фона не был виден

    Пример:

    
     
     
     
    
    

Заранее спасибо! :)

8
задан akjoshi 22 June 2012 в 13:42
поделиться