c# - 如果我的类中没有具有该名称的相应属性,我是否应该引发 INotifyPropertyChanged 事件?

标签 c# events inotifypropertychanged

我有一个实现 INotifyPropertyChanged 的类并且有自己的属性概念,有点像这样:

class sealed MyClass : INotifyPropertyChanged
{
    private Dictionary<string, object> _properties;

    public object GetProperty(string name)
    {
        return _properties[name];
    }

    public object SomeProperty
    {
        get
        {
            return GetProperty("SomeProperty");
        }
    }
}

请注意,一些常用属性也有 C# 访问器。

我想引发一个事件来通知其他人某个属性(其值通过 GetProperty 方法访问)已更改,即使此属性没有相应的 C# 访问器也是如此。

假设没有发生冲突的风险(即无意中为值未更改的 C# 属性引发属性更改事件 - 请注意此类是密封的),是否有任何理由导致我不能只使用INotifyPropertyChanged.PropertyChanged 事件来通知其他人,还是我应该为此添加自己的事件?

最佳答案

我建议您添加自己的。虽然没有特定的原因导致代码中断,但 INotifyPropertyChanged 具有特定的预期用途,并且许多潜在消费者都了解这一用途。我不会亲自编写与此相矛盾的代码,以防万一。

关于c# - 如果我的类中没有具有该名称的相应属性,我是否应该引发 INotifyPropertyChanged 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11970705/

相关文章:

c# - 使用 MVC 通过 url 传递参数?

javascript - 如何在asp.net和vb.net中单击删除按钮后向后重定向两步

c# - 使用 Linq 抛出异常

c# - 从父级引发有关用户控件的事件

php - 可扩展的延迟 PHP 处理

c# - 当绑定(bind)属性强制执行某些业务规则时,绑定(bind) WPF TextBox 不会更新值

c# - 当字段依赖于另一个字段时通知属性更改的最佳方法

c# - 使用 SQLite 时实现 MVVM 设计模式的正确方法

c++ - 拦截windows打开的文件

c# - 将多个 ObservableCollection 绑定(bind)到一个 ObservableCollection