2011-07-23 8 views
2

のviewmodelで、プロパティ、型変換エラーにテキストボックスのborderBrushプロパティをバインドする方法:私はプロパティ次のように私はborderbrushプロパティをXAMLでテキストボックスを持っている

をdefindているビューモデル内

<textbox BorderBrush="{Binding MyBrush}" /> 

public System.Windows.Media.Brushes MyBrush {get;set;} 

が、私は、このプロパティ

void method() 
{ 
MyBrush = System.Windows.Media.Brushes.Red; 
} 

コンプに値を設定することはできませんイラーエラーがある:暗黙的

public System.Windows.Media.Brush MyBrush {get;set;} 

答えて

3

変更

public System.Windows.Media.Brushes MyBrush {get;set;} 

が前を含む静的クラスですSystem.Windows.Media.Brushesに型System.Windows.Media.SolidColorBrushを変換することはできません定義済みのブラシインスタンス。

あなたの財産の種類は、あなたがINotifyPropertyChangedのを使用する必要がありますBrush

+0

ありがとうございました。それは問題を解決しました!テキストボックスの上にマウスを置くと、その境界線の色が赤からデフォルトの色に変わる理由はわかりません!!非常に奇妙な!!私は何をしなければなりませんか? – user848609

2

Brushes

0

でなければなりません。コードは

private System.Windows.Media.Brush _myBrush 
public System.Windows.Media.Brush MyBrush { 
    get { return _myBrush; } 
    set { 
     if(value != _myBrush) { 
      _myBrush = value; 
      OnPropertyChanged("MyBrush"); 
     } 
    } 
} 

protected virtual void OnPropertyChanged(string propertyName) { 
    // .... 
} 
関連する問題