C# WPF和WinForms控件之间最好的对话方式是什么?

C# WPF和WinForms控件之间最好的对话方式是什么?,c#,wpf,winforms,C#,Wpf,Winforms,我的项目是用WinForms C编写的。我将WPF用户控件实现为MVVM,并将其放置在项目中。一些WinForms用户控件应该对WPF用户控件中所做的更改进行对话/反应。 我可以想出两种方法: 用户控件可以公开属性。例如:UC3将引用UC4,UC4将引用WPF-UC。UC3还将引用UC2,UC2将引用UC1,因此UC1可以订阅WPF-UC中的某些事件。 使用某种中介,从而将依赖性保持在最低限度。 注入某种基本上可以作为中介的服务。 我认为方法2是最好的,因为我总是可以移动控件。另一方面,这种方法

我的项目是用WinForms C编写的。我将WPF用户控件实现为MVVM,并将其放置在项目中。一些WinForms用户控件应该对WPF用户控件中所做的更改进行对话/反应。 我可以想出两种方法:

用户控件可以公开属性。例如:UC3将引用UC4,UC4将引用WPF-UC。UC3还将引用UC2,UC2将引用UC1,因此UC1可以订阅WPF-UC中的某些事件。 使用某种中介,从而将依赖性保持在最低限度。 注入某种基本上可以作为中介的服务。 我认为方法2是最好的,因为我总是可以移动控件。另一方面,这种方法可能存在哪些缺点/陷阱?你觉得怎么样

如果方法2是最好的,是否有任何库可供我使用,而不是重新发明轮子

例如,在下图中-目标应该在WPF UserControl更改时更新。 黑色-WinForms控件。红色-WPF控制


我会在WPF ViewModel中创建委托,因为它是由Winforms模块创建的实例—您可以在那里注册这些事件,然后您可以指示其他Winforms组件根据您的喜好进行操作,因为它们也连接到已注册的组件。

在这种情况下,最好使用中介模式。在这个问题上看我的文章,可能会有所帮助。所以,我的直觉并没有让我失望:在我看来,我找到了更好的中介实现-。它使用类型而不是令牌