이름을 제공하지 않습니다 바인딩 속성으로 뷰 모델에 정의 :브러쉬 MVVM은 내가 MVVM 코드를 사용하여 브러시 내가 문자열 형식의 파일에서 색 이름을 읽고 변환의 경우 국경 배경에 대해 구속력을 가지고 색상
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의 값을 볼 때 "# FFFF0000"이고 Brushes.Red와 같지 않기 때문에 문제가되는 것은 아닙니다 (SolidColorBrush로 값을 변환하고 비교했습니다. Brushes.Red와 함께,하지만 그것은 동일하지 않습니다).
내가 잘못하고있는 것은 무엇입니까? 파일에서 읽은 색상 이름이 Brushes. *로 제대로 변환되도록하려면 어떻게해야합니까? 그렇게하면 DataTrigger가 올바르게 작동합니다.
감사합니다,
RDV
감사합니다 Ed Plunkett, Background.Color는 속임수였다! – RDV