如何将文本框的borderBrush属性绑定到视图模型中的属性,类型转换错误

本文关键字:属性 模型 视图 错误 类型转换 绑定 文本 borderBrush | 更新日期: 2023-09-27 18:03:32

我在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

如何将文本框的borderBrush属性绑定到视图模型中的属性,类型转换错误

change

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

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

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

你的属性类型应该是Brush

您应该使用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) {
    // ....
}