使用静态类使UI元素可以从.NET中的所有类访问,这是一种好的做法吗

本文关键字:一种 元素 UI 静态类 NET 访问 | 更新日期: 2023-09-27 17:57:56

请告诉我以下哪项是良好的编程实践:

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元素可以从.NET中的所有类访问,这是一种好的做法吗

从多个类控制UI元素通常是一种糟糕的做法。

您应该创建一个接口,该接口公开从其他类抽象UI的方法和属性,并在MainWindow类中实现该接口。

其他类可以接受该接口作为构造函数参数,也可以从静态类中使用它。

我不太清楚winforms。但是你应该遵循mvc模式。

通常你会得到你的主类(你的案例主窗口),它就是控制器。因此,所有视图(子元素)都是从这个类中控制的。子元素可以包含对主窗口的引用。主课应该很流畅。当然,模型也应该解耦。静态类是不好的做法。不要。

好的做法是创建不耦合的代码。如果你使用这种方法,你很可能会忘记你在哪里提交更改。。。

对"远"事件作出反应的一种可能性是实现观察者模式。就像您在表示层上真正处理可视化(在本例中为MainWindow)的更改一样