最近我在自定义数字控件中遇到了一个问题,它可以采用双值。但在某些情况下,必须限制只采用整数。在这里,我有两种方法可以做到这一点。在文本框的textchangedeventhandler中处理它,或者为自定义Numeric文本框创建行为类。根据性能,标准和可扩展性,我需要了解哪一个更好。我也浏览了这个链接How do I get a TextBox to only accept numeric input in WPF?。但是根据标准需要更具体的答案。
答案 0 :(得分:0)
我的意见是这样的。我更喜欢构图而不是继承。网上有很多关于此的讨论(不论技术如何)。或许首先阅读:http://en.wikipedia.org/wiki/Composition_over_inheritance
所以,当我想改变WPF控件的行为时,我通常会使用附加属性(或者如果你愿意的话,还是使用Behavor)作为我的初始钩子。在某些情况下,我会进行复杂的修改,然后我会有一个完整的“监听器”类监视并对控件的输入作出反应。
但是,有时您可能需要获取控件的受保护成员。如果无法避免这种情况,那就是继承。
所以,在架构上我会说首先选择附加属性(或Behavor),继承第二个属性。