【问题标题】:Sub classing all WPF base controls对所有 WPF 基本控件进行子类化
【发布时间】:2023-04-06 19:23:01
【问题描述】:

而不是使用所有基本的 wpf 控件,例如 Label、TextBox、Grid 等。我想创建所有这些基本控件的子类并使用子类。

例如 公共类 MyTextBox : 文本框 {}

它们现在是虚拟类,但它留下了可扩展的空间,以防我将来需要。这是推荐的还是不必要的?

【问题讨论】:

    标签: c# wpf controls


    【解决方案1】:

    这是yagni的教科书定义

    【讨论】:

      【解决方案2】:

      这听起来没有必要,效率低下,绝对不推荐!

      【讨论】:

      • 为什么要停在那里?一直回到 System.Object 并派生出你自己的。你到底为什么要做这种事?!?!?
      【解决方案3】:

      如果由于某种原因您将来需要一个子类,那么简单地创建它比现在做很多不必要的工作要容易得多。

      【讨论】:

        【解决方案4】:

        这种方法往往是矫枉过正的。当您知道将来需要更改基本 UI 控件时,它确实有其用途。因此,如果您使用的是第三方控件套件,那么您可能会考虑这种方法,但您不会希望使用 MS 控件来执行此操作,因为它们已融入框架 - 您不会更改这些!

        另一种方法是确保您遵循 MVVM 之类的模式 - 这可以确保您的 UI 与您的工作代码很好地分离,并且您可以以最小的影响更改控件。

        【讨论】:

          【解决方案5】:

          我认为这是不必要的。我们可以使用样式轻松覆盖控件的外观。如果要添加属性,可以使用附加属性。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-08-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多