C# 将财产注册为从属财产

C# 将财产注册为从属财产,c#,wpf,dependency-properties,C#,Wpf,Dependency Properties,我有一个名为ChartView的用户控件。这里我有一个类型为ObservableCollection的属性。我已经在图表视图中实现了INotifyPropertyChanged 图表条目的代码为: public class ChartEntry { public string Description { get; set; } public DateTime Date { get; set; } public double Amount { get; set; } } 现在我

我有一个名为ChartView的用户控件。这里我有一个类型为ObservableCollection的属性。我已经在图表视图中实现了INotifyPropertyChanged

图表条目的代码为:

public class ChartEntry
{
   public string Description { get; set; }
   public DateTime Date { get; set; }
   public double Amount { get; set; }
}
现在我想在另一个视图中使用此控件,并通过数据绑定为图表条目设置ObservableCollection。如果我试着用以下方法来做:

<charts:ChartView ChartEntries="{Binding ChartEntriesSource}"/>
这也没用。
如何将我的财产注册为从属财产?

此处不需要
附件属性。在
图表视图中
添加
dependencProperty
如下

    public static readonly DependencyProperty ChartEntriesProperty =
        DependencyProperty.Register("ChartEntries",
                                            typeof(ObservableCollection<ChartEntry>),
                                            typeof(ChartView),
                                            new FrameworkPropertyMetadata(OnChartEntriesChanged));

    private static void OnChartEntriesChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {

    }
公共静态只读从属属性ChartEntriesProperty=
DependencyProperty.Register(“图表条目”,
类型(可观测采集),
类型(图表视图),
新的FrameworkPropertyMetadata(OnChartEntriesChanged));
更改ChartEntries上的私有静态void(DependencyObject d、DependencyPropertyChangedEventArgs e)
{
}
现在,您可以绑定ChartEntries属性:

 <charts:ChartView ChartEntries="{Binding PROPERTYOFYOURDATACONTEXT}"/>

您似乎有点混淆了
附件属性
从属属性
。忘记你的
ChartEntriesSource
类吧。。。相反,将此
DependencyProperty
添加到
ChartView
控件中应该可以实现以下功能:

public static readonly DependencyProperty ChartEntriesProperty = DependencyProperty.
Register("ChartEntries", typeof(ObservableCollection<ChartEntry>), typeof(ChartView));

public ObservableCollection<ChartEntry> ChartEntries
{
    get { return (ObservableCollection<ChartEntry>)GetValue(ChartEntriesProperty); }
    set { SetValue(ChartEntriesProperty, value); }
}
公共静态只读DependencyProperty ChartEntriesProperty=DependencyProperty。 登记簿(“图表条目”、类型(可观测集合)、类型(图表视图); 公共可观测收集图表条目 { get{return(ObservableCollection)GetValue(ChartEntriesProperty);} set{SetValue(ChartEntriesProperty,value);} }
您的类是静态的?哦,您太快了!:)
public static readonly DependencyProperty ChartEntriesProperty = DependencyProperty.
Register("ChartEntries", typeof(ObservableCollection<ChartEntry>), typeof(ChartView));

public ObservableCollection<ChartEntry> ChartEntries
{
    get { return (ObservableCollection<ChartEntry>)GetValue(ChartEntriesProperty); }
    set { SetValue(ChartEntriesProperty, value); }
}