使用静态类使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元素通常是一种糟糕的做法。
您应该创建一个接口,该接口公开从其他类抽象UI的方法和属性,并在MainWindow
类中实现该接口。
其他类可以接受该接口作为构造函数参数,也可以从静态类中使用它。
我不太清楚winforms。但是你应该遵循mvc模式。
通常你会得到你的主类(你的案例主窗口),它就是控制器。因此,所有视图(子元素)都是从这个类中控制的。子元素可以包含对主窗口的引用。主课应该很流畅。当然,模型也应该解耦。静态类是不好的做法。不要。
好的做法是创建不耦合的代码。如果你使用这种方法,你很可能会忘记你在哪里提交更改。。。
对"远"事件作出反应的一种可能性是实现观察者模式。就像您在表示层上真正处理可视化(在本例中为MainWindow)的更改一样