【发布时间】:2010-04-20 02:09:29
【问题描述】:
我有一个 wpf gui,它在单独的窗口和主应用程序的单独线程中显示信息列表。当用户在主窗口中执行操作时,侧窗口会更新。 (例如,如果您在主窗口中单击向下翻页,侧窗口中的列表框将向下翻页)。
现在这个应用程序的架构感觉非常混乱,我相信有一种更简洁的方法可以做到这一点。它看起来像这样:
主窗口包含一个单例 SideWindowControl,它使用事件与 SideWindowDisplay 的一个实例进行通信 - 例如,pagedown 按钮的工作方式如下:
1)主窗口按钮的事件处理函数调用SideWindowControl.PageDown()
2) 在 PageDown() 函数中创建并抛出一个事件。
3) 最后是 gui,ShowSideWindowDisplay 正在订阅 SideWindowControl.Actions 事件处理该事件并实际向下滚动列表框 - 请注意,因为它位于不同的线程中,因此必须通过 Dispatcher.Invoke( )
这似乎是一个非常混乱的方式,必须有一个更清晰的方式(唯一不能改变的部分是主窗口和侧窗口必须在不同的线程上)。也许使用 WPF 命令?
我非常感谢任何建议!谢谢
【问题讨论】:
标签: c# wpf design-patterns