В ItemContainerStyle для списка (в Blend щелкните правой кнопкой мыши ListBox на объектах и временной шкале и выберите «Редактировать дополнительные шаблоны» / «Редактировать контейнер сгенерированного элемента» (ItemContainerStyle) / «Редактировать копию ...» новый стиль в привлекательном диалоговом окне.)
В сгенерированном стиле найдите тег ContentPresenter. Где-то в этой области (в зависимости от ваших конкретных требований макета) вы захотите удалить свой элемент изображения. Установите его видимость для привязки к свойству IsSelected шаблонного родителя ...
<Image Source="{Binding Property2}" Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsSelected, Mode=TwoWay, Converter={StaticResource BooleanToVisibilityConverter}}"/>
Как видно из приведенной выше разметки, вам необходимо использовать преобразователь значений, поэтому вы не можете отказаться от использования НЕКОТОРОГО кода ... IsSelected - логическое значение, Visibility - член перечисления System.Windows.Visibility. Чтобы преобразовать одну форму в другую, вам понадобится ValueConverter, который переключается из одной области значений в другую. Преобразователь Boolean / Visibility довольно распространен, и я включил простой ниже (у меня, как правило, есть «фондовый», который я использую, который включает параметр, чтобы установить, какое значение сопоставить «true», чтобы сделать его более гибким, но опущенным для краткости ...)
public class BooleanToVisibilityConverter : IValueConverter
{
public Object Convert(Object value, Type targetType, Object parameter, System.Globalization.CultureInfo culture)
{
var booleanValue = (Boolean)value;
return booleanValue ? Visibility.Visible : Visibility.Collapsed;
}
public Object ConvertBack(Object value, Type targetType, Object parameter, System.Globalization.CultureInfo culture)
{
var visibilityValue = (Visibility) value;
return visibilityValue == Visibility.Visible;
}
}