Этот вопрос задавался здесь тысячи раз.Но на самом деле, ни один из ваших примеров и ответов не работает для меня.Итак, позвольте мне показать вам мой код.
public class PlayList : INotifyPropertyChanged{
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string name) {
var handler = PropertyChanged;
if (handler != null) {
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
private string _dl;
public string DriveLetter {
get { return _dl; }
set {
if (value != _dl) {
_dl = value;
OnPropertyChanged("DriveLetter");
}
}
}
}
public partial class MainWindow : Window {
public PlayList playlist = new PlayList();
private void Window_Loaded(object sender, RoutedEventArgs e) {
Binding bind = new Binding("DriveLetter");
bind.Source = this.playlist;
bind.Mode = BindingMode.TwoWay;
bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
textBox1.SetBinding(TextBlock.TextProperty, bind);
this.playlist.DriveLetter = "A";
}
}
Конечно, WPF игнорирует эту привязку (ничего не меняется, когда я печатаю в текстовом поле, и ничего не меняется, когда я меняю свойство playlist.DriveLetter.
Отладчик говорит, что обработчик PropertyChanged не равен нулю
{Method = {Void OnPropertyChanged(System.Object, System.ComponentModel.PropertyChangedEventArgs)}}
Итак, есть идеи, что я делаю неправильно (я не верю, что WPF не прав)?
Заранее спасибо!