c# - 如何实现属性更改通知

标签 c# wpf mvvm

在 MVVM 中,我应该如何实现 INotifyPropertyChanged 接口(interface):在 ViewModel 类中还是在 Model 类中?如果 INotifyPropertyChanged 接口(interface)已在 ViewModel 中实现,如何处理模型的属性更改事件?

最佳答案

一、你总是 在您的 View 模型中实现它,因为当您在 View 模型中更新数据时,框架会使用该接口(interface)来更新 UI。

您可以在模型中实现它,但这绝不是必需的。如果模型正在从您下面更改,您可以并且可能应该轻松地引发 View 模型监听的您自己的(语义更清晰的)事件以更新其数据。

实际的实现应该是这样的(MSDN):

    private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
    {
        var handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }

关于c# - 如何实现属性更改通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26186164/

相关文章:

android - 无法使用 liveData 或 viewModelScope.launch

c# - 在 WPF 的 UserControl 中显示控件的验证错误模板

c# - 使用 VSTO c# 创建的 outlook 插件的 ProgID

c# - 点击上下文菜单而不是点击并按住

wpf - 如何通过重新定义的列表框模板使用 UI 虚拟化

.net - Windows 7 和 Windows 8 中的 ListBox 边距不一样

c# - 以编程方式禁用 Windows 7 上的虚拟键盘?

c# - 根据不同操作结果的数量使用带有 sqlTransaction 的构造

c# - C# Lambda 表达式的 SQL [IN] 语句等效于什么?

c# - MVVM Light,将 RelayCommand<T> 与返回数据的方法一起使用