我正在尝试使用 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 是否需要一些特殊指令来更新用户控件?