Вы можете использовать ItemContainerStyle
, чтобы определить стиль элементов.
В этом стиле вы можете связать свойство Background
с самим товаром, представляющим цвет.
Теперь неявный конвертер цветов преобразуется в соответствующий цвет и устанавливается в свойство фона.
пример
<ListView Name="list" >
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Background"
Value="{Binding}" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
результат
Альтернативные Approch
вот как вы можете использовать Triggers
для установки значений условно
я использовал DataTrigger
, чтобы увидеть, если элемент удовлетворения мое состояние, а затем я могу установить нужный цвет с помощью сеттер
<ListView Name="list">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Style.Triggers>
<DataTrigger Binding="{Binding}"
Value="red">
<Setter Property="Background"
Value="red" />
</DataTrigger>
<DataTrigger Binding="{Binding}"
Value="mygreen">
<Setter Property="Background"
Value="green" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
</ListView>
результат
в приведенном выше примере вы можете увидеть, что на заднем плане цвет применяется только к только желаемым элементам, например. red & mygreen
Как насчет создания класса «ColorViewModel» с свойством «BackgroundColor»? list.Items.Add (новый ColorViewModel («красный», Colors.Red)); А затем связать свойство «Источники» с листингами в «BackgroundColor» вашего viewmodel? – SuperOli