如何将 ActiveX 控件挂钩到事件/更改到我的视图模型中?
Posted
技术标签:
【中文标题】如何将 ActiveX 控件挂钩到事件/更改到我的视图模型中?【英文标题】:How to hook ActiveX control into events/changes into my viewmodel? 【发布时间】:2010-10-09 01:45:50 【问题描述】:我已将 WindowsMediaPlayer ActiveX 添加到我的 WPF/MVVM 应用程序中。现在我需要控件来对视图模型中发生的变化做出反应(最重要的是,当我的集合中的当前选择发生变化时更新 URL)。基于Walkthrough: Hosting an ActiveX Control in WPF,我的 Loaded 事件中有以下内容:
// Create the interop host control.
System.Windows.Forms.Integration.WindowsFormsHost host =
new System.Windows.Forms.Integration.WindowsFormsHost();
// Create the ActiveX control.
AxWMPLib.AxWindowsMediaPlayer axWmp = new AxWMPLib.AxWindowsMediaPlayer();
// Assign the ActiveX control as the host control's child.
host.Child = axWmp;
// Add the interop host control to the Grid
// control's collection of child controls.
this.pnlMediaPlayer.Children.Add(host);
问题是 - 如何在视图模型中的属性更改时更新 axWMP.URL 控件属性?
【问题讨论】:
【参考方案1】:好的,使用 Windows.Forms.Binding:
axWmp.DataBindings.Add(new System.Windows.Forms.Binding("URL",(DisplayViewModel)this.DataContext,"Source"));
【讨论】:
这对于从 ViewModel 更新 ActiveX 控件非常有用,但是您是否曾经从 ActiveX 控件更新过 View Model?如果有,如何更新?以上是关于如何将 ActiveX 控件挂钩到事件/更改到我的视图模型中?的主要内容,如果未能解决你的问题,请参考以下文章
如何在asp.net用户控件(ascx)中插入activex
如何在 MFC 应用程序中捕获 OLE 控件事件?由创建的 ActiveX 控件触发
如何使用 MFC 以编程方式更改 ActiveX 控件的属性?
如何将方法挂钩到 Delphi 7 IDE 中的 Edit 事件?