wpf - 在 WPF 中使用复杂的 Winforms 控件(如 ZedGraph)和 MVVM 设计

标签 wpf mvvm zedgraph windowsformshost

我正在构建一个基于 MVVM 模式的 WPF 桌面应用程序。

我想显示一些图表,并决定使用旧的 ZedGraph 库,因为我很熟悉它,并且目前似乎没有更好的选择(如果有,请评论)

我可以使用以下代码将图形控件放在我的 View 上:

    <WindowsFormsHost>
        <zed:ZedGraphControl x:Name="graphControl"/>
    </WindowsFormsHost>

但是,我想对图形控件进行相当多的操作,设置轴和数据等。坚持使用 MVVM,我无法从 ViewModel 调用图形控件,并且我不想放置图形在 View 后面的代码中进行操作。

有没有办法将 Graph Control 对象放入 ViewModel 中,在那里对其进行操作,并且仍然让 View 显示它?

最佳答案

IMO,我认为这是不可能的,因为您使用的底层控件是 Windows 窗体控件。因此,作为一种解决方法,您可以编写一个自定义 WPF 控件,它仅使用 WindowsFormsHost 方法包装图形控件,并公开操作所需的属性轴、数据等

关于wpf - 在 WPF 中使用复杂的 Winforms 控件(如 ZedGraph)和 MVVM 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6115032/

相关文章:

wpf - WPF 应用程序中的菜单/工具栏颜色

安卓 MVVM : Where to put adapters?

zedgraph - 如何创建 ZedGraph 静态标签

c# - 在图形区域外向 ZedGraph 添加文本

c# - ZedGraph - 如何从点到时间更改 X 轴?

.net - 使用 Windows 窗体技能进行 Silverlight/WPF 编程

wpf - 控件的 "visible area"?

C# WPF-如果右键单击系统任务栏上的应用程序图标,则在关闭应用程序之前询问用户

wpf - 如何将 TabControl 的项目绑定(bind)到 wpf 中的可观察集合?

.net - 通过MVC Web API传输完整对象的好策略是什么?