我在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
答案 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) {
// ....
}