ChartViewというUserControlがあります。ObservableCollection 型のプロパティがあります。ChartView に INotifyPropertyChanged を実装しました。
ChartEntry のコードは次のとおりです。
public class ChartEntry
{
public string Description { get; set; }
public DateTime Date { get; set; }
public double Amount { get; set; }
}
ここで、このコントロールを別のビューで使用し、DataBinding を介して ChartEntries の ObservableCollection を設定したいと考えています。私がそれをやろうとすると:
<charts:ChartView ChartEntries="{Binding ChartEntriesSource}"/>
非依存プロパティまたは非依存オブジェクトにバインドできないというメッセージが xaml ウィンドウに表示されます。
ObservableCollection を DependencyProperty として登録しようとしましたが、成功しませんでした。WPFチュートリアルのコードで試してみました
Attached-Property の私のコードは
public static class ChartEntriesSource
{
public static readonly DependencyProperty ChartEntriesSourceProperty =
DependencyProperty.Register("ChartEntriesSource",
typeof(ChartEntry),
typeof(ChartView),
new FrameworkPropertyMetadata(OnChartEntriesChanged));
private static void OnChartEntriesChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
}
public static void SetChartEntriesSource(ChartView chartView, ChartEntry chartEntries)
{
chartView.SetValue(ChartEntriesSourceProperty, chartEntries);
}
public static ChartEntry GetChartEntriesSource(ChartView chartView)
{
return (ChartEntry)chartView.GetValue(ChartEntriesSourceProperty);
}
}
これもうまくいきませんでした。プロパティを DependencyProperty として登録するにはどうすればよいですか?