当我尝试将标签的前景绑定到实现 INotify 的画笔属性 (CurrentBrush) 时,当 CurrentBrush 的值更改时,前景不会更新。我在这里完成了其他绑定进行测试,它们似乎工作正常,这只是 Brush 属性。
最初,标签的前景是洋红色,这表明绑定至少可以工作一次。关于为什么它不会在后续更改中更新(例如,单击按钮时)的任何想法?
(我实际上在一个更大的项目中遇到了这个问题,我将颜色选择器控件的 SelectedColor 绑定到元素的 Stroke 属性(这是一个画笔)。它不起作用,所以我试图隔离可能是什么导致问题,这就是我最终的结果 - 任何帮助将不胜感激!)
xml:
<Label Content="Testing Testing 123" Name="label1" VerticalAlignment="Top" />
<Button Content="Button" Name="button1" Click="button1_Click" />
这是背后的代码:
public partial class MainWindow : Window, INotifyPropertyChanged
{
private Brush _currentBrush;
public Brush CurrentBrush
{
get { return _currentBrush; }
set
{
_currentBrush = value;
OnPropertyChanged("CurrentBrush");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
public MainWindow()
{
InitializeComponent();
CurrentBrush = Brushes.Magenta;
Binding binding = new Binding();
binding.Source = CurrentBrush;
label1.SetBinding(Label.ForegroundProperty, binding);
}
private void button1_Click(object sender, RoutedEventArgs e)
{
CurrentBrush = Brushes.Black;
}
}