3

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

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

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

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

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

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

4

3 回答 3

3

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

于 2011-05-24T23:43:00.317 回答
2

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

于 2012-07-12T12:35:05.933 回答
0

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

于 2018-02-11T18:24:53.947 回答