在带有MVVM设计的WPF中使用类似ZedGraph的复杂Winforms控件



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

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

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

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

然而,我想操作图形控件,设置轴和数据等。坚持MVVM,我不能从ViewModel调用图形控件,我也不想把图形操作放在View的代码后面。

有没有一种方法可以将Graph Control对象放在ViewModel中,在那里操作它,然后仍然让View显示它?

IMO,我认为这是不可能的,因为您使用的底层控件是Windows窗体控件。因此,作为一种变通方法,您可以编写一个自定义WPF控件,它只使用WindowsFormsHost方法包装图形控件

要在WPF窗口中托管ZedGraph,请查看此处的示例。

这很有可能。可以使用"行为"模式来操纵图形。设置可在XAML中用作视图模型绑定的依赖项属性。然后,Behaviors中的代码(依赖属性)充当xaml中绑定和实际控件之间的粘合剂。

相关内容

  • 没有找到相关文章

最新更新