我何时需要使用自动属性以及何时使用propertychanged事件?

时间:2010-05-29 09:53:06

标签: c# properties

我正在使用wpf及其C sharp!

我在Animal.cs clas中有这个

private string _animalName;

    public string AnimalName
    {
        get { return _animalName; }
        set
        {
            if(_animalName!= value)
            {
                _animalName= value;
                this.NotifyPropertyChanged("AnimalName");
            }
        }
    }

我也可以写:

公共字符串AnimalName {get; set;}

绑定和验证没有区别。当我交换代码时,Everythings就像以前一样工作。

这是因为我只创造新动物,但我不允许在申请中更新动物名称?

所以我需要调用propertyChanged(“AnimalName”);只有当我想改变它的属性值时?

我是c#beginner;)

1 个答案:

答案 0 :(得分:1)

如果您的对象具有将绑定到控件的可更新属性(setter),那么您需要确保通过INotifyPropertyChanged让绑定控件知道该属性的任何更改。但是,如果您有一个readonly属性和/或不会在数据绑定方案中使用的属性,那么您不关心在该属性的setter中实现或调用NotifyPropertyChanged方法,在这种情况下您可以使用自动属性