gpt4 book ai didi

wpf - 如何在 ActiveX 控件和 WPF MVVM View 模型之间实现双向绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 10:30:05 34 4
gpt4 key购买 nike

我有一个使用 MVVM 框架实现的 WPF 应用程序,该框架使用 ActiveX 控件,我需要保持 WPF 和 ActiveX UI 同步。

到目前为止,当我使用从文章 Hosting an ActiveX Control in WPF 获得的问题底部的代码更改 WPF UI 时,我可以更新 ActiveX UI。这个question .

但是当我在 ActiveX UI 中进行更改时,我无法更新 WPF UI。

我怀疑我需要从我的 ActiveX 控件中触发 PropertyChanged 事件,但我不知道如何执行此操作,或者是否可能。

我编写的 ActiveX 控件是在 VB6 和 MFC 中编写的,因为此时我只是在制作原型(prototype),以便最终将 VB6 ActiveX 控件集成到 WPF 容器应用程序中。

这是一个代码片段,表明到目前为止已完成的工作:

System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost();

// Create the ActiveX control.
AxTEXTBOXActiveXLib.AxTEXTBOXActiveX axWmp = new AxTEXTBOXActiveXLib.AxTEXTBOXActiveX();

// Assign the ActiveX control as the host control's child.
host.Child = axWmp;

axWmp.DataBindings.Add(new System.Windows.Forms.Binding("ActiveXStatus", (MainWindowViewModel)this.DataContext, "ModelStatus", true, DataSourceUpdateMode.OnPropertyChanged ));

// Add the interop host control to the Grid
// control's collection of child controls.
this.activexRow.Children.Add(host);

如何在 ActiveX 控件和 WPF MVVM View 模型之间实现双向绑定(bind)?

最佳答案

您需要做的是创建 ActiveX 控件也可以引用的 ActiveX 库和 WPF 程序集。在库中使用所需的任何复杂性的刷新方法创建一个界面。创建一个全局多用途方法,实现的对象可以使用它来注册自己。然后在 ActiveX 控件中,它可以检查是否已注册任何内容并触发刷新方法。然后在 WPF 程序集中,UI 可以实现接口(interface)并注册自身以提供它与 ActiveX 控件之间的连接。

关于wpf - 如何在 ActiveX 控件和 WPF MVVM View 模型之间实现双向绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106277/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com