我正在构建一个基于 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/