【发布时间】:2011-12-11 13:53:47
【问题描述】:
我创建了一个图表控件,过了一段时间我决定向它添加多系列功能。我使用 ObservableCollection<ChartSerie> 类型的依赖属性实现了该功能,如下所示:
private static DependencyPropertyKey SeriesPropertyKey = DependencyProperty.RegisterReadOnly("Series", typeof(ObservableCollection<ChartSerie>), typeof(Chart), new FrameworkPropertyMetadata(new ObservableCollection<ChartSerie>()));
public static DependencyProperty SeriesProperty = SeriesPropertyKey.DependencyProperty;
我使用 XAML 中的这个属性以这种方式调用它:
<chart:Chart>
<chart:Chart.Series>
<chart:ChartSerie Data="{Binding ChartData1}"/>
<chart:ChartSerie Data="{Binding ChartData2}" />
</chart:Chart.Series>
</chart:Chart>
ChartSerie 代码只是 ChartData 的一个容器:
public static DependencyProperty DataProperty = DependencyProperty.Register("Data", typeof(ObservableCollection<ChartPoint>), typeof(ChartSerie), new FrameworkPropertyMetadata(OnDataChanged));
我面临的问题是 ChartSerie 实例没有填充来自绑定的数据。它们的 Data 属性始终设置为 null。我在 Visual Studio 的输出中没有绑定错误。
提前致谢。
编辑:经过一番挖掘之后,这里似乎存在真正的绑定问题。看起来 Chart 的 DataContext 没有被 ChartSerie 继承。 ChartSerie 是一个 FrameworkElement 以防万一
【问题讨论】:
标签: c# wpf xaml binding dependency-properties