如何将文本框的borderBrush属性绑定到viewmodel中的属性,键入转换错误

时间:2011-07-23 17:08:42

标签: c# wpf mvvm wpf-controls

我在xaml中有一个带有borderbrush属性的文本框,如下所示:

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

内部视图模型我已经定义了属性

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

但我无法为此属性设置值

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

编译错误是:无法将System.Windows.Media.SolidColorBrush类型隐式转换为System.Windows.Media.Brushes

3 个答案:

答案 0 :(得分:3)

变化

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

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

答案 1 :(得分:2)

Brushes是一个包含预定义画笔实例的静态类。

您的媒体资源类型应为Brush

答案 2 :(得分:0)

您应该使用INotifyPropertyChanged。代码如:

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) {
    // ....
}