WinFORMS中的WPF用户控件:项目结构

时间:2013-02-05 11:13:00

标签: c# .net winforms wpf-controls winforms-interop

SCENARIO

我决定为我的新应用程序开发WPF技术。必须在WinForms窗口中单击菜单时调用此应用程序。所以我创建了一个WPF UserControl库并将其集成到使用Element Host在父WinForms表单中显示。

我的申请

它包含3个子用户控件,这些用户控件使用tabContent Control封装在另一个用户控件中。我更喜欢这种方法,因为来自Child UserControl的触发事件和WinForms中的处理(订阅事件)似乎很痛苦。

我的问题

现在面临着在Winforms中访问UserControl元素的同样痛苦的任务,我为了正确的项目结构原因创建了Data Manager类(UserControl不应该包含Data Manager类-UI)。请指导我如何构建我的项目/如何订阅事件/访问WPF中的WPFUserControl元素。

1 个答案:

答案 0 :(得分:2)

查看MVVM Light Toolkit的Messenger类(也可以单独使用)。它有助于解耦控件。信使使用发布/订阅模式。您的WPF UserControls可以发布对象,WinForms主机可以监听这些通知。交换的消息(对象)最好放在单独的程序集中,因为它们定义了WPF UC库和WinForms应用程序之间的共享协定。