【问题标题】:WPF Toolkit Charting and IndependentValueBinding, IndependentValuePathWPF 工具包图表和 IndependentValueBinding、IndependentValuePath
【发布时间】:2010-06-02 19:02:18
【问题描述】:

我遇到了来自 WPF 工具包的图表引擎的问题。

我还没有将数据移动到合适的对象模型中,所以ItemSourceDataView 为后盾。

第一次尝试

<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。所以这个解决方案会导致一大堆看起来很hacky的代码手动切换路径。

有没有办法解决这个问题?我可以使用某种转换器来获取绑定属性以正确地从 DataView 中的列中提取数据吗?

谢谢, 乔尔

【问题讨论】:

  • 您的数据上下文看起来如何?将课程添加到您的问题中。
  • 代码在过去 3 年中被完全重写。
  • LOL 我没有注意到这是个老问题。奇怪的是,它会在未回答的标签顶部弹出。

标签: wpf binding charts wpftoolkit


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2013-03-16
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多