C# 将财产注册为从属财产
我有一个名为ChartView的用户控件。这里我有一个类型为ObservableCollection的属性。我已经在图表视图中实现了INotifyPropertyChanged 图表条目的代码为: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; } } 现在我
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); }
}