这是重写 WPF 控件行为的更好方法 - 在代码隐藏中添加事件处理程序或为其添加行为类

本文关键字:事件处理 添加 隐藏 程序 添加行 代码 控件 WPF 重写 方法 更好 | 更新日期: 2023-09-27 18:32:33

最近我在自定义数字控件中遇到了一个问题,它可以采用双精度值。但在某些情况下,必须将其限制为仅采用整数。在这里,我有两种方法可以做到这一点。在文本框的文本更改事件处理程序中处理它,或者为自定义数字文本框创建行为类。我需要了解根据性能、标准和可扩展性,哪一个更好。我还浏览了此链接如何使文本框仅接受 WPF 中的数字输入?。但需要根据标准提供更具体的答案。

这是重写 WPF 控件行为的更好方法 - 在代码隐藏中添加事件处理程序或为其添加行为类

我的看法是这样的。 我更喜欢作曲而不是继承。 网络上有很多关于此的讨论(无论技术如何)。 也许从阅读以下内容开始:http://en.wikipedia.org/wiki/Composition_over_inheritance

因此,当我想更改 WPF 控件的行为时,我通常会使用附加属性(或 Behavor,如果您愿意)作为我的初始钩子。 在某些情况下,我会进行复杂的修改,然后我有一个完整的"侦听器"类监视并对控件上的输入做出反应。

但是,有时可能需要获取控件的受保护成员。 如果这无法避免,那么继承就是。

因此,从架构上讲,我会说首先更喜欢附加属性(或行为),其次是继承。