WPF Toolkit Charting и IndependentValueBinding, IndependentValuePath
У меня возникла проблема с механизмом построения диаграмм из инструментария WPF.
Я не переместил данные в подходящую объектную модель, поэтому ItemSource
поддерживается DataView
.
Первая попытка
<chartingToolkit:ScatterSeries x:Name="TargetSeries"
DataPointStyle="{StaticResource TargetStyle}"
ItemsSource="{Binding Path=TargetSeriesData}"
IndependentValueBinding="{Binding Path=TargetSeries_X}"
DependentValueBinding="{Binding Path=TargetSeries_X}" />
Это приводит к сбою, потому что я считаю, что привязки считаются значениями графика или своего рода несоответствия.
Вторая попытка
<chartingToolkit:ScatterSeries x:Name="TargetSeries"
DataPointStyle="{StaticResource TargetStyle}"
ItemsSource="{Binding Path=TargetSeriesData}"
IndependentValuePath="{Binding Path=TargetSeries_X}"
DependentValuePath="{Binding Path=TargetSeries_X}" />
Этот сбой происходит во время этапа инициализации, потому что свойства Path не поддерживаются свойствами зависимостей и поэтому не могут быть связаны.
Третья попытка
<chartingToolkit:ScatterSeries x:Name="TargetSeries"
DataPointStyle="{StaticResource TargetStyle}"
ItemsSource="{Binding Path=TargetSeriesData}"
IndependentValuePath="targetFooXColumnName"
DependentValuePath="targetFooYColumnName" />
Теперь это работает!
Но я хотел использовать привязку, чтобы переключиться с targetFooXColumnName
на targetFooBarXColumnName
. Таким образом, это решение приведет к тому, что целый пакет хакерских кодов переключит путь вручную.
Есть ли способ исправить это? Могу ли я использовать какой-то конвертер, чтобы получить свойства Binding, чтобы правильно извлекать данные из столбцов в DataView?
Спасибо,
Joel
Ответы
Ответ 1
Я думаю, что ваше приложение сбой по причине: "вы не перенесли данные в подходящую объектную модель"
Я могу попробовать Binding в ScatterSeries работать с ошибками: Like
<Grid Name="grid_Sample" Loaded="grid_Sample_Loaded">
<DVC:Chart Canvas.Top="80" Canvas.Left="10" Name="mcChart"
Width="400" Height="250"
Background="LightSteelBlue">
<DVC:Chart.Series>
<DVC:ScatterSeries x:Name="TargetSeries"
ItemsSource="{Binding sampleList}"
IndependentValueBinding="{Binding Path=TargetSeries_X}"
DependentValueBinding="{Binding Path=TargetSeries_Y}">
</DVC:ScatterSeries>
</DVC:Chart.Series>
</DVC:Chart>
</Grid>
private void grid_Sample_Loaded(object sender, RoutedEventArgs e)
{
sampleList = new ObservableCollection<SampleTest>() {
new SampleTest(){TargetSeries_X=20,TargetSeries_Y=50},
new SampleTest(){TargetSeries_X=25,TargetSeries_Y=60},
new SampleTest(){TargetSeries_X=30,TargetSeries_Y=50},
new SampleTest(){TargetSeries_X=40,TargetSeries_Y=60}
};
((ScatterSeries)mcChart.Series[0]).ItemsSource = sampleList;
}
В соответствии с My Knowledge, пожалуйста, попробуйте с подходящей моделью для привязки ItemsSource к ScatterSeries.