This question was asked here for thousands times. But really, none of your examples and answers works for me. So let me show you my code.
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"; } } Ofcourse WPF ignores this binding (nothing changes when I type in textbox, and nothing changes when I change playlist.DriveLetter property.
Debugger says, that PropertyChanged handler is not null
{Method = {Void OnPropertyChanged(System.Object, System.ComponentModel.PropertyChangedEventArgs)}} So, any ideas what I am doing wrong. (I do not belive that WPF is wrong)?
Thanks in advance!
Playlistobject in code while setting it as theDataContextof theTextBox, or simply provide a property for it that the XAML can refer to for it's source.