wpf - 非静态依赖属性

标签 wpf

我有什么理由可以(或不应该)将依赖属性声明为非静态的?

我需要制作一个具有双向可绑定(bind)属性的接口(interface)。 INotifyPropertyChanged 在接收端似乎有点麻烦,因为它依赖于字符串标识符。

最佳答案

Is there any reason why I could (or should) not declare dependency properties as non-static?



是的。

WPF 中的依赖属性机制使用按类型而不是按实例指定的存储机制。 DPs 的设计依赖于它们是静态定义的,而不是每个实例。如果您在实例上定义它们,它们将无法正常工作。

这样做部分是为了允许继承属性,但也允许您在对象上指定很多属性,而无需为每个实例使用大量内存。

如果要创建具有双向可绑定(bind)属性的接口(interface),通常您希望为您的类使用 INotifyPropertyChanged,并使用用户界面元素上的依赖属性来处理绑定(bind)。 INotifyPropertyChanged 是正确的机制。如果主要提示是字符串标识符,您可以 work around them using expression trees .

关于wpf - 非静态依赖属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660696/

相关文章:

wpf - 使用 Century 代替 Century Gothic 停止 WPF

wpf - 如何使用 WPF 打开颜色和字体对话框?

c# - 动态添加填充有绑定(bind)文本框的网格行

c# - 从 XAML 中删除重复的 DataTrigger 代码

wpf - 如何在自定义控件中绑定(bind)

c# - 如何在 C# 中获取网格的行数和列数?

c# - 如何在没有焦点的 wpf 文本框中突出显示/选择文本?

wpf - 在 wpf MVVM 应用程序上使用 Unity 进行依赖注入(inject)

c# - 文本框中仅允许字母数字

c# - 标记在 XML 命名空间中不存在