我遇到了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
。所以这个解决方案会导致很多看起来很糟糕的代码手动切换Path。
有没有办法解决这个问题?我可以使用某种转换器来获取Binding属性以正确地从DataView中的列中提取数据吗?
谢谢, 乔尔
答案 0 :(得分:0)
我认为您的应用程序崩溃的原因是“您还没有将数据移动到正确的对象模型”
我可以尝试在ScatterSeries中使用Binding来处理崩溃:比如
<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;
}
根据我的知识,请尝试使用Proper模型将ItemsSource绑定到ScatterSeries。