我有以下设置,我想知道我正在做的是最好的方法:
Project1 //reusable code and controls
mainclass.cs
usercontrol1.xaml
usercontrol2.xaml
Project2 //referencing Project1
mainwindow.xaml //containing usercontrol1.xaml and usercontrol2.xaml
Project1包含在其他项目中使用的类和用户控件,例如Project2。 当初始化Project2中的主窗口时,我创建一个mainclass的新实例并将其作为变量传递给usercontrols,我还将usercontrols作为变量传递给mainclass。
通过这种方式,从mainclass我可以访问usercontrols中的所有公共方法和变量,反之亦然。这是一个好方法吗?
public partial class MainWindow : Window
{
public MainClass MC = new MainClass();
public MainWindow()
{
InitializeComponent();
MC.usercontrol1 = this.usercontrol1;
MC.usercontrol2 = this.usercontrol2;
usercontrol1.mainClass = MC;
usercontrol2.mainClass = MC;
}
...
我知道如果通过事件完成,这部分会更合适,但是我需要在类和用户控件之间交叉访问的方法和变量的数量非常高,并且这样做似乎工作得很好...
谢谢!
答案 0 :(得分:0)
为什么在MainClass
中没有构造函数,因为所有这些类都在同一个项目中:
public MainClass(usercontrol1 uc1, usercontrol2 uc2)
{
uc1.mainClass = this;
uc2.mainClass = this;
this.usercontrol1 = uc1;
this.usercontrol2 = uc2;
}
然后,
public partial class MainWindow : Window
{
public MainClass MC = new MainClass(this.usercontrol1, this.usercontrol2);
public MainWindow()
{
InitializeComponent();
}
...
否则我不确定你要做的是什么。
答案 1 :(得分:0)
循环依赖是坏的,紧密绑定的类也很糟糕,因为它们打破了开放的封闭原则......
我不确定你想要完成什么,但我会建议另一个班级来组成所有三个班级,否则就可以使用事件。