Я пытаюсь создать простую диаграмму с осями YAxis и SecondaryYAxis, имеющими одинаковый диапазон и масштабирование. Там у меня две проблемы:
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>
если у меня есть одна серия, отображаемая на оси Y, и другая серия, отображаемая на оси SecondaryYAxis, обе имеют разные масштабы или диапазоны.
2) Если у меня нет серий, отображаемых на SecondaryYAxis (поскольку я хочу, чтобы обе оси показывали одни и те же данные, нет смысла использовать SecondaryYAxis), «неиспользуемая» SecondaryYAxis вообще не показывает ни метки, ни тики.
Короче говоря, мой вопрос: Как я могу сделать так, чтобы диаграмма отображала одну и ту же ось Y слева и справа?
======= РЕДАКТИРОВАТЬ =======
Хорошо, как указал @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);
Я понятия не имею, почему привязка в xaml не работает, когда диаграмма помещается в TabControl. Может быть, кто-то может поподробнее об этом?!