使用静态类使UI元素可从.NET中的所有类访问是否是一种好习惯?

问题描述

| 请让我知道以下哪一项是良好的编程习惯: 1.使用静态类,然后使用MainWindow类构造函数对其的引用,如下所示:
    public partial class Mainwindow : Window
    {
    public MainWindow()
    {
        InitializeComponent();
        UI.window = this;
    }

    private void button1_Click(object sender,RoutedEventArgs e)
    {   
        Shutdownads attempt1 = new Shutdownads();
    }
    }

    static class UI
    {
        public static MainWindow window; 
    }

    /*and then refering to the wpf elements from other classes as follows
       UI.window.textbox.Text=\"blahblah\"
       UI.window.button ... and so on
    */
要么 2.将所有类都包含在MainWindow类中的程序中是否更好? 要么 3.是否有更好的选择(它还实现了更好的OOP以及我可以通过其他类访问UI)?     

解决方法

通常,从多个类控制UI元素是较差的做法。 您应该创建一个接口,该接口公开从其他类中抽象UI的方法和属性,并在
MainWindow
类中实现该接口。 其他类可以将该接口作为构造函数参数接受,也可以从静态类中使用它。     ,我不完全知道winforms。但是您应该遵循mvc模型。 通常,您有主类(您的案例主窗口),它是控制器。因此,所有视图(子元素)均由此类控制。子元素可以保存对主窗口的引用。 主要班级应该非常考究。 当然,模型也应该解耦。 静态类是不好的做法。别。     ,好的做法是创建不耦合的代码。如果您使用这种方法,那么很可能会忘记提交更改的位置... 对“远”事件做出反应的可能性是实现观察者模式。这样,您就可以在表示层上真正地处理可视化的更改(在本例中为MainWindow)     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...