c# - raisepropertychanged 和 PropertyChanged 有什么区别?

标签 c# mvvm

我认为两者相同,但我发现它们只在一个文件中使用,例如下面的代码。这里是 raisepropertychanged 的​​代码。

public decimal Amount
        {
            get
            {
                return _amount;
            }
            set
            {
                _amount = value;
                RaisePropertyChanged("Amount");
            }
        }

这里是 PropertyChanged 的​​代码:

 public event PropertyChangedEventHandler PropertyChanged;

    private void RaisePropertyChanged(string propertyName)
    {
        // take a copy to prevent thread issues
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }

请解释一下它们的区别:

最佳答案

PropertyChanged 是一个事件。 RaisePropertyChanged 是用于引发事件的方法。

当然,您可以直接从您的属性 setter 调用事件,但是您必须每次都检查处理程序是否不为空...最好在一个地方执行。

关于c# - raisepropertychanged 和 PropertyChanged 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669829/

相关文章:

c# - 将代码从 C++ 迁移到 C#

c# - 使用 Func 捕获类属性

c# - C/C++ 等同于 C# 参数

c# - 如何解决 "striped"表的 Blazor/Bootstrap 5 CSS 问题?

wpf - 多种 .NET 技术和模式如何协同工作?

c# - 删除特定控件的所有事件处理程序

c# - WPF - UI 未从命令更新

wpf - 更改多个条件之一时如何设置属性?

c# - RelayCommand 与 EventToCommand

c# - 从后台 Worker 更新 ObservableCollection