YAxis と SecondaryYAxis の両方が同じ Range と Zoom を持つ単純なグラフを作成しようとしています。そこには2つの問題があります:
1) Range と Zoom のバインドが期待どおりに機能しないようです。
<charts:Chart.YAxis>
<charts:LinearAxis LabelsPosition="Inside" x:Name="PrimaryAxis"/>
</charts:Chart.YAxis>
<charts:Chart.SecondaryYAxis>
<charts:LinearAxis LabelsPosition="Inside"
Range="{Binding ElementName=PrimaryAxis, Path=ActualRange}"
Zoom="{Binding ElementName=PrimaryAxis, Path=Zoom}"
AutoScaleToVisibleData="False"/>
</charts:Chart.SecondaryYAxis>
YAxis に 1 つのシリーズが表示され、SecondaryYAxis に別のシリーズが表示されている場合、両方のスケールまたは範囲が異なります。
2)SecondaryYAxisにシリーズが表示されていない場合(両方の軸に同じデータを表示したいので、SecondaryYAxisを使用しても意味がありません)、「未使用」のSecondaryYAxisにはラベルも目盛りも表示されません。
私の質問を簡単に言うと、グラフの左側と右側に同じ YAxis を表示するにはどうすればよいですか?
=======編集=======
OK、@ NielWが指摘したように、私は何も悪いことはしていません。問題は、グラフが TabControl にあるため、グラフがXAML で指定されているバインディングを設定しないことでした。理由は聞かないでください。ただし、修正方法は次のとおりです。
XAML でバインディングを設定する代わりに、コード ビハインドから手動で行います。
var primary = ResultChart.YAxis as LinearAxis;
var secondary = ResultChart.SecondaryYAxis as LinearAxis;
var rangeBinding = new Binding("ActualRange")
{
Source = primary
};
secondary.SetBinding(LinearAxis.RangeProperty, rangeBinding);
var zoomBinding = new Binding("Zoom")
{
Source = primary
};
secondary.SetBinding(LinearAxis.ZoomProperty, zoomBinding);
チャートが TabControl に配置されているときに xaml でのバインドが機能しない理由がわかりません。おそらく誰かがそれについて詳しく説明できますか?!