【发布时间】:2023-04-06 19:23:01
【问题描述】:
而不是使用所有基本的 wpf 控件,例如 Label、TextBox、Grid 等。我想创建所有这些基本控件的子类并使用子类。
例如 公共类 MyTextBox : 文本框 {}
它们现在是虚拟类,但它留下了可扩展的空间,以防我将来需要。这是推荐的还是不必要的?
【问题讨论】:
而不是使用所有基本的 wpf 控件,例如 Label、TextBox、Grid 等。我想创建所有这些基本控件的子类并使用子类。
例如 公共类 MyTextBox : 文本框 {}
它们现在是虚拟类,但它留下了可扩展的空间,以防我将来需要。这是推荐的还是不必要的?
【问题讨论】:
这是yagni的教科书定义
【讨论】:
这听起来没有必要,效率低下,绝对不推荐!
【讨论】:
如果由于某种原因您将来需要一个子类,那么简单地创建它比现在做很多不必要的工作要容易得多。
【讨论】:
这种方法往往是矫枉过正的。当您知道将来需要更改基本 UI 控件时,它确实有其用途。因此,如果您使用的是第三方控件套件,那么您可能会考虑这种方法,但您不会希望使用 MS 控件来执行此操作,因为它们已融入框架 - 您不会更改这些!
另一种方法是确保您遵循 MVVM 之类的模式 - 这可以确保您的 UI 与您的工作代码很好地分离,并且您可以以最小的影响更改控件。
【讨论】:
我认为这是不必要的。我们可以使用样式轻松覆盖控件的外观。如果要添加属性,可以使用附加属性。
【讨论】: