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には、ユーザーコントロールを更新するための特別な指示が必要ですか?