2

我正在尝试使用 Caliburn.micro 在 WPF 应用程序中创建一个 winforms 图(System.Windows.Forms.DataVisualization)。

我有一个用户控件,它基本上包装了图表并将其呈现在控件中。它看起来像这样:

<DockPanel LastChildFill="true">
    <WindowsFormsHost x:Name="WindowsFormsHost">
        <winformchart:Chart x:Name="WinformChart" Dock="Fill" MouseClick="ChartControl_MouseClick">
            <winformchart:Chart.Series>
                <winformchart:Series Name="series" ChartType="Line"/>
            </winformchart:Chart.Series>
            <winformchart:Chart.ChartAreas>
                <winformchart:ChartArea/>
            </winformchart:Chart.ChartAreas>
        </winformchart:Chart>
    </WindowsFormsHost>
</DockPanel>

该控件用于具有相应视图模型的视图中。我想让视图模型更新图表。

这就是我将图表连接到视图模型的方式:

_view = IoC.Get<MyView>();
Chart = _view.ChartControl1.WinformChart;

其中ChartControl1是视图中图表的 XAML 名称,并且Chart是视图模型中的属性。

1)将用户控件连接到视图模型真的是个好主意吗?

我的视图模型更新了图表值 ( Chart.Series[0].Points[i].SetValueXY(i, data[i])),然后它失效Chart以更新用户控件。但是,控件中不显示任何内容。

2)这种方法可能有什么问题?

2.a) Caliburn.micro 是否需要一些特殊指令来更新用户控件?

4

0 回答 0