WPF工具包图表和独立ValueBinding,独立ValuePath

WPF工具包图表和独立ValueBinding,独立ValuePath,wpf,binding,charts,wpftoolkit,Wpf,Binding,Charts,Wpftoolkit,WPF工具包中的图表引擎有问题 我没有将数据移动到适当的对象模型,因此ItemSource以DataView作为备份 第一次尝试 <chartingToolkit:ScatterSeries x:Name="TargetSeries" DataPointStyle="{StaticResource TargetStyle}" ItemsSource="{Binding Path=TargetSeriesData}" IndependentValueBinding="{Bi

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中的列中提取数据

谢谢,
Joel

我认为您的应用程序崩溃的原因是“您没有将数据移动到适当的对象模型”

我可以尝试在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; 
    }

已加载私有无效网格样本(对象发送方、路由目标)
{
sampleList=新的ObservableCollection(){
新的SampleTest(){TargetSeries_X=20,TargetSeries_Y=50},
新的SampleTest(){TargetSeries_X=25,TargetSeries_Y=60},
新的SampleTest(){TargetSeries_X=30,TargetSeries_Y=50},
新建SampleTest(){TargetSeries_X=40,TargetSeries_Y=60}
};
((ScatterSeries)mcChart.Series[0])。ItemsSource=样本列表;
}

据我所知,请尝试使用合适的模型将ItemsSource绑定到ScatterSeries。

您的数据上下文看起来如何?将这些类添加到你的问题中。代码在过去3年中被完全重写。哈哈,我没注意到这是一个如此古老的问题。奇怪的是,它突然出现在未答复的选项卡顶部。