c# - WPF UserControl 在代码中创建,绑定(bind)未注册 INotifyPropertyChanged

标签 c# wpf generics data-binding inotifypropertychanged

我创建了一个通用 WPF 控件,因此布局全部在代码中定义。这一切都很好,我添加了第一次工作的绑定(bind),例如:

private bool btEnabled { get { return SOME_LOGIC; } }

Button bt = new Button { Content = "Button" };
bt.SetBinding(Button.IsEnabledProperty, new Binding { Source = btEnabled, Mode = BindingMode.OneWay });

每当发生影响 btEnabled 属性的事情时,我都会调用 INotifyPropertyChanged 但 PropertyChanged 事件始终为 null,我无法弄清楚为什么绑定(bind)没有注册 PropertyChanged 事件。

有什么想法吗?

谢谢

最佳答案

我看到 btEnabled 是一个属性,太私密了!

所以大概有两个错误...

您的 Binding 应该设置 Path="btEnabled" 而不是 Source=btEnabled 并且您的 btEnabled 属性应该是公开的。

关于c# - WPF UserControl 在代码中创建,绑定(bind)未注册 INotifyPropertyChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7347507/

相关文章:

delphi - 将泛型类型从一个类传递到另一个类时出错

C#:最佳实践 Debug.Print

c# - 如何在 EntityFramework 5 中使用 Transaction?

c# - 将项目从一个列表移动到另一个列表,两者都在列表数组中

c# - Windows XP 上的 WPF 视频撕裂

c# - 在 C# wpf 中如何遍历网格并获取网格内的所有标签

c# - 使用参数调用resx

c# - 将 WPF 控件绑定(bind)到 Timer 中更新的数据是否安全?

java - 通用方法类型参数

java - 使用泛型和继承来谓词 java 8