を与えるものではありませんバインディング:ブラシMVVMで、私は文字列の形式のファイルからの色の名前を読んで、コードを使用してブラシにそれらを変換ところ、私はMVVMはボーダー背景で結合しているという名前の色
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は決してトリガーされません。setメソッドのthis._backgroundの値を見ると "#FFFF0000"で、Brushes.Redと等しくないためです(値をSolidColorBrushに変換して比較しようとしましたブラシで.Red、それは等しくない)。
私は間違っていますか?ファイルから読み込んだ色の名前がBrushes。*に正しく変換されていることを確認するために何ができるのですか?DataTriggerがうまく動作するように。
おかげで、
RDV
ありがとうEd Plunkett、Background.Colorはトリックでした! – RDV