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!
Change
textBox1.SetBinding(TextBlock.TextProperty, bind); 
to
textBox1.SetBinding(TextBox.TextProperty, bind); 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With