【发布时间】:2019-12-19 08:25:45
【问题描述】:
我的 WPF 应用程序有多个窗口:
- 主窗口
- 子窗口1
- 子窗口2
我通过...从 MainWindow 实例化子级
public partial class MainWindow : Window
{
ChildWindow1 CW1;
ChildWindow2 CW2;
public MainWindow()
{
InitializeComponent();
}
private void btnButton1_Click(object sender, RoutedEventArgs e)
{
CW1 = new ChildWindow1();
CW1.Show();
CW1.Owner = this;
CW2 = new ChildWindow2();
CW2.Show();
CW2.Owner = this;
}
}
太棒了!
但这就是我遇到麻烦的地方:我有一个需要实例化的非 UI 类。
public class MyClass
{
public void DoSomething()
{
//Do something here
}
}
该类的对象应该“存在”在 ChildWindow1 中,因为它在逻辑上属于它。所以,我像这样在 ChildWindow1 中实例化它:
public partial class ChildWindow1 : Window
{
public MyClass MyObject = new MyClass();
public ChildWindow1()
{
InitializeComponent();
}
}
但最终到了 ChildWindow2 需要与 ChildWindow1 中的对象交互的地步:
- 调用 Childwindow1 中对象的“DoSomething()”方法。
- 订阅 ChildWindow1 中的对象引发的事件
我可以在主窗口中完成所有这些操作,因为它拥有孩子,但我希望孩子能够直接互动。
允许 CW1 CW2 交互是否违反了设计原则?
如果不通过调用方法或订阅事件,您还能如何让它们进行交互?
感谢这里的所有人提供这个很棒的学习资源!非常感谢!
【问题讨论】:
标签: wpf window parent interaction