У меня есть MVVM привязки для Border фона, где в я прочитал имена цвета из файла в формате Строка и конвертировать их в кисти с помощью кода:Кисть MVVM Binding не имеет дают по имени цвета
Brush b1 = new SolidColorBrush((Color)ColorConverter.ConvertFromString("Red");
myItem.Background = b1;
фон является свойство, определенное в ViewModel как:
public Brush Background
{
get { return _background; }
set
{
this._background = value;
RaisePropertyChanged("Background");
}
}
И она доступна в XAML как:
<Border Background="{Binding Background}">
<Border.Style>
<Style TargetType="{x:Type Border}">
<Style.Triggers>
<DataTrigger Binding="{Binding Background}" Value="Red">
<Setter Property="Height" Value="40"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
Граница должным образом окрашена - проблем нет.
Проблема заключается в том, что DataTrigger никогда не запускается, потому что, когда я вижу значение this._background в методе set, оно «# FFFF0000» и не равно Brushes.Red (я попытался преобразовать значение в SolidColorBrush, а затем сравнил с Brushes.Red, но он не равен).
Что я такое делаю неправильно? Что я могу сделать для того, чтобы имена цветов, которые я прочитал из файла, были правильно преобразованы в Brushes. *, Чтобы мой DataTrigger работал нормально.
Спасибо,
RDV
Thanks Ed Plunkett, Background.Color был трюк! – RDV