1

目前,我已使用以下方法对我在 xaml 中绑定的任何属性设置更改通知:

    class MyClass : INotifyPropertyChanged
{
    string name;

    public string Name
    {
        get { return name; }
        set
        {
            name = value;
            NotifyPropertyChanged("Name");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    public void NotifyPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

但是,我已经看到要实现一个依赖属性,我需要做一些事情,比如注册它和设置回调等,而这反过来又会调用上面的代码。

那么当我可以使用上述方法时,为依赖属性设置所有额外的样板文件有什么意义呢?

谢谢。

4

2 回答 2

3

依赖属性可以是绑定的目标,而常规 CLR 属性不能。这就是为什么控件的属性(绑定目标)通常是依赖属性,而模型或 ViewModel 类(绑定源)的属性则不是。

于 2009-09-07T18:40:56.093 回答
1

您所做的是正确的(假设我理解正确)依赖属性不适用于您在模型中绑定的内容,它们适用于模型将绑定到的控件中的属性 - 例如文本框中的 Text 属性.

在您的自定义控件中使用它们有很多原因,其中最重要的是它们附带的自动管道,以便它们正确绑定到您的示例中声明的属性。

于 2009-09-07T11:11:21.287 回答