ObservableCollection中的自定义DependencyProperty <t> </t>

时间:2013-03-20 15:38:00

标签: wpf collections dependency-properties

如何添加自定义DependencyProperty?此方法不起作用。

public class SongCollection : ObservableCollection<Song>
{
public static readonly DependencyProperty UrlProperty = DependencyProperty.Register(
  "Url", typeof(ObservableCollection<Point>), typeof(Arrow));
public Uri Url
        {
            get { return (Uri)GetValue(UrlProperty);}
            ....
        }
}

2 个答案:

答案 0 :(得分:1)

问题应该是它不能编译。自ObservableCollection<T>的{​​{1}} is not derived起,即使我更正其余的代码,这种实现也无法正常工作,这也是完全错误的。

有关DependencyObject的更多信息,请查看here

修改

您的财产的正确实施将是

DependencyProperties

修改2

包装器实现

public class SomeClass : DependencyObject
{
    public static readonly DependencyProperty UrlProperty = 
        DependencyProperty.Register("Url", typeof(Uri), typeof(SomeClass));

    public Uri Url
    {
        get { return (Uri)GetValue(UrlProperty);}
        set { SetValue(UrlProperty, value); }
    }
}

答案 1 :(得分:0)

DependencyProperties用于在DependencyObjects上公开绑定功能。

基本上,你不能在不从DependencyObject派生的类上声明DependencyProperty,而且,除非在DependencyObject上使用它被绑定到该属性,否则你不需要声明DependencyProperty。 object的DataContext。