Я создал элемент управления Chart и через некоторое время решил добавить в него возможности мультисерии. Я реализовал функцию, используя свойство зависимости типа 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. У меня нет ошибок привязки на выходе визуальной студии.
Заранее спасибо.
РЕДАКТИРОВАТЬ: После копания немного похоже, что здесь есть реальная проблема связывания. Похоже, DataContext из Chart не наследуется ChartSerie. ChartSerie является FrameworkElement на всякий случай, если это имеет значение