У нас есть общий DateTimeAxis, на который мы ссылаемся на всех наших страницах содержимого с помощью SfChart.
<xForms:DateTimeAxis
x:Key="CommonDateTimeAxis"
AxisLineStyle="{StaticResource ChartAxisLineStyle}"
EdgeLabelsDrawingMode="Shift"
Interval="{Binding DateTimeAxisIntervalGrouping}"
IntervalType="{Binding DateTimeAxisInterval, Converter={StaticResource DataTimeAxisTypeConverter}}"
MajorTickStyle="{StaticResource ChartMajorTickStyle}"
Maximum="{Binding CurrentDataWindow.End}"
Minimum="{Binding CurrentDataWindow.Start}"
PlotOffset="12"
ShowMajorGridLines="False">
<xForms:DateTimeAxis.LabelStyle>
<xForms:ChartAxisLabelStyle
FontFamily="{StaticResource LightFontFamily}"
FontSize="10"
LabelFormat="{Binding DateTimeAxisDateFormat}"
TextColor="{StaticResource OffWhite}" />
</xForms:DateTimeAxis.LabelStyle>
</xForms:DateTimeAxis>
Обратите внимание, что мы привязываемся к свойству ViewModel, поскольку мы меняем формат динамически.
LabelFormat="{Binding DateTimeAxisDateFormat}"
При начальной загрузке страницы и модели просмотра настройка формата работает нормально. Однако, если после того, как мы закроем View \ ViewModel, а затем go обратно в любой другой из наших View \ ViewModels с помощью sfChart (или того же самого), LabelFormat останется на том значении, которое было до закрытия первого View / ViewModel.
Я думал, что делаю что-то дурацкое sh с сохранением экземпляров, но потом понял, что если я просто объявляю DateTimeAxis локально, т.е. не являюсь общим ресурсом в ResourceDictionary, привязка всегда работает.
Это не ожидал, правда? FWIW Я открыл инцидент с Syncfusion отдельно и сообщу обо всем полезном здесь