Когда я пытаюсь привязать переднюю часть метки к свойству кисти (CurrentBrush), который реализует INotify, передний план не обновляется при изменении значения CurrentBrush. Я сделал другие привязки здесь, чтобы проверить, и они, похоже, работают нормально, это просто свойство Brush.Свойство привязки к кисти с INotify
Первоначально на переднем плане этикетки находится пурпурный, который предполагает, что связывание работает как минимум. Любые идеи относительно того, почему он не будет обновляться при последующих изменениях (например, при нажатии кнопки)?
(Я на самом деле столкнулся с этой проблемой в более крупном проекте, где я привязывал SelectedColor элемента управления цветом к свойству Stroke (который является кистью) элемента. Это не сработало, поэтому я попытался изолировать то, что может быть причиной проблемы, и это, где я в конечном итоге - любая помощь будет оценена)
в XAML:
<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;
}
}
Спасибо, что работает perfec ждение! Я попытался создать новый SolidColorBrush (вместо замороженных кистей) как изначально, так и внутри события, но теперь я вижу, что вы создаете объект один раз и просто изменяете его свойства вместо замены его (что было ошибкой, которую я делал). Еще раз спасибо! –