检查WPF属性设置器中是否实际更改了值?

时间:2012-09-27 09:10:06

标签: .net wpf

在WPF中,最好在调用NotifyPropertyChanged之前检查属性设置器中是否实际更改了模型属性的值?

例如:

    private string foobar;

    public string Foobar
    {
        get
        {
            return this.foobar;
        }

        set
        {
            if (value != this.foobar)
            {
                this.foobar = value;
                this.NotifyPropertyChanged("Foobar");
            }
        }
    }

另一种方法是不检查并且每次只调用NotifyPropertyChanged:

    private string foobar;

    public string Foobar
    {
        get
        {
            return this.foobar;
        }

        set
        {
            this.foobar = value;
            this.NotifyPropertyChanged("Foobar");
        }
    }

我见过代码示例中使用的两种样式。每种方法的优点和缺点是什么?

1 个答案:

答案 0 :(得分:4)

我总是进行检查,因为事件似乎意味着应该发生实际的改变。

(也可以防止不必要的更新)