0

我有一个 win 表单应用程序,我正在重写它以使用 WPF 和 MVVM 模式。它使用一个用 C++ 编写的 DLL 来公开我需要在 WPF 应用程序中将我的模型绑定到的几个函数。

例如,我有来自 DLL 的这个函数。

// The user supplied function will be called whenever a frame of data arrives.
SetDataHandlerFunc(void (*MyFunction)(sFrameOfData* pFrameOfData));

我有一个看起来像这样的包装 dll:

public delegate void HandlerFunction(IntPtr frameData);

[DllImport("lib\\SDK.dll")]
public extern static int SetDataHandlerFunc(HandlerFunction function);

让我稍后在我的表单应用程序中使用它,如下所示:

private HandlerFunction myFunction;
myFunction = new HandlerFunction(threadFunction);

private void threadFunction(IntPtr FrameData)
{
    sFrameOfData frame = (sFrameOfData)Marshal.PtrToStructure(FrameData, typeof(sFrameOfData));
}

但我无法真正弄清楚如何将其转换为 MVVM 和 WPF 数据绑定。我认为我可能正在考虑使用 ObjectDataProvider 绑定到方法。

我需要从帧数据中获取一些参数(作为上面的 sFrameOfData 对象返回),并在 GUI 中显示它们,并让它们随着数据的变化而更新。

关于如何实现这样的事情的任何想法?

4

1 回答 1

1

您实际上不会绑定到该方法。在您的视图模型中,具有表示您感兴趣的参数并绑定到这些参数的属性。

所以在你的 threadFunction 中取回你的 sFrameOfData 对象,然后在你的视图模型上设置属性的值。确保您实现 INotifyPropertyChanged 以将属性更改事件引发到视图,在该视图上您拥有绑定到视图模型上的属性的控件。

于 2013-07-05T14:54:48.777 回答