public BindingChainExampleControl() { // shoud be assigned before InitializeComponent // because initial value is null // and BindingChainExampleControl desn't implement INotifyPropertyChanged // so noone will know that value of DataSource has been changed DataSource = new FirstLevelObject(); DataSource.PropertyChanged += (sender, args) => OnInternalObjectChanged(); InitializeComponent(); OnInternalObjectChanged(); }