我在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}" />
这种崩溃发生在初始化步骤中,因为路径属性没有依赖属性的支持,因此不能被绑定。
第三次尝试
<chartingToolkit:ScatterSeries x:Name="TargetSeries"
DataPointStyle="{StaticResource TargetStyle}"
ItemsSource="{Binding Path=TargetSeriesData}"
IndependentValuePath="targetFooXColumnName"
DependentValuePath="targetFooYColumnName" />
现在这个方法起作用了!但是我想使用绑定,这样我就可以从使用targetFooXColumnName
切换到targetFooBarXColumnName
。因此,这个解决方案将导致大量看起来很粗糙的代码手动切换路径。
有没有办法解决这个问题?我是否可以使用某种转换器来获取绑定属性,以便正确地从DataView中的列中提取数据?
谢谢,乔尔
发布于 2017-11-30 20:53:29
我认为您的应用程序崩溃的原因是“您没有将数据移动到适当的对象模型”
我可以尝试在ScatterSeries中使用绑定,它可以处理外部崩溃:比如
<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;
}
根据我的知识,请尝试使用适当的模型将ItemsSource绑定到ScatterSeries。
https://stackoverflow.com/questions/2960740
复制相似问题