0

ユーザーコントロールに埋め込まれたチャートがあります

PlotControl.xaml (PlotControl.xaml.cs)

このプロット コントロールは、MVVM のビューで使用されます。

今!PlotControl の UI を更新すると (たとえば、チャートに垂直および水平マーカーを描画する)、これらの更新はビューに表示されません (ビューをダブルクリックするか、最小化-最大化ウィンドウを実行しない限り)。

更新された UI が View で自動的に更新される方法はありますか?

ビュー コードは次のようになります。

<Grid Margin="4">
   <nms:PlotControl  x:Name="PlotControl" Margin="10,10" DockPanel.Dock="Right" />
</nms:PlotControl>

PlotControl.xaml.cs コードのスニペットは次のようになります。

ChartPanel cpnl = new ChartPanel();
chart.View.Layers.Add(cpnl);

ChartMarker rightVerticalMarker = new ChartMarker(chart, MarketType.RightVertical);
rightVerticalMarker.DataPoint = new Point(30, double.NaN);

cpnl.Children.Add(rightVerticalMarker);
cpnl.UpdateLayout();
chart.UpdateLayout();

ChartMarker は、enum MarketType によって定義された単純な水平 (または垂直) 線です。

注: SO で 2 日間この問題を探していましたが、どこにも解決策が見つかりませんでした。

4

1 に答える 1

0

更新は、Arrange メソッドによって強制できます。これが私が見つけたもので、私の問題を解決しました。

Size userControlSize = this.RenderSize; //original size of userControl
Size chartSize = chart.RenderSize;    // original size of chart
chart.Arrange(chart.View.PlotRect); // forcing layout elements on chart
chart.Arrange(new Rect(chartSize)); // setting the chart size to original value
Arrange(new Rect(userControlSize)); // setting the userControl size to original value
于 2013-08-29T12:07:22.140 に答える