В настоящее время я использую линейную диаграмму (из WinRT XAML Toolkit) и столкнулся с проблемой: все идет правильно, но если мое (In)DependentValue, привязанное к моей LineSeries, содержит уведомление об изменении (INotifyPropertyChanged), инструментарий вызвать COMException.
Я использовал последнюю версию (1.4.1) инструментария от Nuget.
Мой XAML-код:
<toolkitchart:Chart x:Name="AltitudeChart" Height="200">
<toolkitchart:LineSeries
IndependentValueBinding="{Binding Distance}"
DependentValueBinding="{Binding Distance}"
IsSelectionEnabled="True"
DependentRangeAxis="{Binding ElementName=LeftAxis}"
IndependentAxis="{Binding ElementName=BottomAxis}">
<toolkitchart:LineSeries.DataPointStyle>
<Style TargetType="toolkitchart:LineDataPoint">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<local:DetailedPushpin ManipulationDelta="DetailedPushpin_ManipulationDelta" ManipulationMode="TranslateY"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</toolkitchart:LineSeries.DataPointStyle>
</toolkitchart:LineSeries>
<toolkitchart:Chart.Axes>
<toolkitchart:LinearAxis x:Name="RightAxis" Orientation="Y" Location="Right"/>
<toolkitchart:LinearAxis x:Name="LeftAxis" Orientation="Y" Location="Left" Foreground="White"/>
<toolkitchart:LinearAxis x:Name="BottomAxis" Orientation="X" Location="Bottom" Foreground="White"/>
</toolkitchart:Chart.Axes>
</toolkitchart:Chart>
И мой код С#:
ObservableCollection<AltChartPoint> ChartPoints = new ObservableCollection<AltChartPoint>();
AltChartPoint a = new AltChartPoint(12);
ChartPoints.Add(a);
a.Distance = 13; <-- Throw exception if the change is notified
...
public class AltChartPoint : INotifyPropertyChanged
{
private double _distance;
public double Distance
{
get { return _distance; }
set
{
_distance = value;
//NotifyPropertyChanged("Distance"); <-- Problem is here
}
}
}
Можно ли обновить диаграмму с уведомлением об обновлении свойств?
Обратите внимание, что такое же исключение возникло, если я попытаюсь напрямую отредактировать LineDataPoint.DependentValue.
DependentRangeAxis="{Binding ElementName=LeftAxis}"
- person Filip Skakun   schedule 25.05.2013