1
當我嘗試將標籤的前景綁定到實現INotify的畫筆屬性(CurrentBrush)時,當CurrentBrush的值更改時,前景不會更新。我在這裏做了其他綁定測試,他們似乎工作得很好,它只是Brush屬性。使用INotify綁定到畫筆屬性
最初,標籤的前景是洋紅色,表明綁定至少一次起作用。關於爲什麼它不會更新後續更改(例如,單擊按鈕時)的任何想法?我實際上在一個更大的項目中遇到了這個問題,我將Color Picker控件的SelectedColor綁定到一個元素的Stroke屬性(它是一個Brush),它不起作用,所以我試圖隔離什麼可能會造成這個問題,這是我結束了 - 任何幫助,將不勝感激)
的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;
}
}
謝謝,這工作完美TLY!我曾嘗試在事件的最初和內部創建一個新的SolidColorBrush(而不是凍結畫筆) - 但現在我看到您創建一次對象,只是修改其屬性而不是替換它(這是我製作的錯誤)。再次感謝! – 2013-04-21 16:43:10