首页 新闻 赞助 找找看

WPF mvvm中INotifyPropertyChanged中的PropertyChanged事件在那里实现的

0
悬赏园豆:20 [待解决问题]

public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string status)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(status));
}
}

刚接触mvvm,请问PropertyChanged这个事件哪里实现的,全局没有实现过是封装在freamwork那个dll了么,很疑惑,请大神解答

IT_Poor_Bird的主页 IT_Poor_Bird | 初学一级 | 园豆:124
提问于:2020-06-03 09:42
< >
分享
所有回答(3)
0

任何你自己写的类,只要实现了 INotifyPropertyChanged 接口,就可以,够开放了吧。
答案就是,没有写好的,因为写好的类就限制了你必须从这个类开始继承。
很多第三方MVVM Library都有实现好的基础类。
MVVMCross, MVVMLight, Prism

爱编程的大叔 | 园豆:30839 (高人七级) | 2020-06-03 09:45

我想问的是为什么实现了INotifyPropertyChanged ,就能用PropertyChanged这个事件,他是封装在哪里了

支持(0) 反对(0) IT_Poor_Bird | 园豆:124 (初学一级) | 2020-06-03 09:56

@IT_Poor_Bird:

region 程序集 System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.dll

endregion

using System.ComponentModel;

namespace System.ComponentModel
{
//
// 摘要:
// 提供对 C# 代码生成器和代码编译器的实例的访问权限。
public interface INotifyPropertyChanged
{
//
// 摘要:
// 在属性值更改时发生。
event PropertyChangedEventHandler PropertyChanged;
}
}

这就是接口的定义。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2020-06-03 10:24

@爱编程的大叔:
我知道 ,我是想看这个事件哪里有实现了 怎么可以直接用

支持(0) 反对(0) IT_Poor_Bird | 园豆:124 (初学一级) | 2020-06-03 10:46

@爱编程的大叔: 这里只是定义了

支持(0) 反对(0) IT_Poor_Bird | 园豆:124 (初学一级) | 2020-06-03 10:47

@IT_Poor_Bird:
我觉得你可以看看c#的委托方面的知识。
Delegate
随便找了个链接给你看看,可能不一定讲得够清楚,不过你可以延申自己找找相关的文章看看。
探究C#中的Delegate、Event和UnityEvent

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2020-06-03 11:20

@爱编程的大叔: 我觉得你并没有明白我的意思,PropertyChanged += 方法,这里的“方法”在那里实现的,明白?

支持(0) 反对(0) IT_Poor_Bird | 园豆:124 (初学一级) | 2020-06-03 13:40

@IT_Poor_Bird:
表达清楚是提问者的责任,不是回答者的。
在你的提问中,并没有
PropertyChanged += 方法
这么一行语句。

PropertyChanged += 这是事件订阅,可以有无数个订阅者的,订阅函数需要你来实现。

支持(0) 反对(1) 爱编程的大叔 | 园豆:30839 (高人七级) | 2020-06-03 14:53

@爱编程的大叔: 不是我刚,你其实也并不知道,到现在你也没有明白被人问的是啥,楼下的我没说人家都知道再说啥

支持(0) 反对(0) IT_Poor_Bird | 园豆:124 (初学一级) | 2020-06-04 11:24
0

你说的“实现”是什么意思?

会长 | 园豆:12401 (专家六级) | 2020-06-03 11:00

这个PropertyChanged是个事件对吧,在那个类中对这个事件进行的订阅,或者说对他进行add
PropertyChanged += 方法

支持(0) 反对(0) IT_Poor_Bird | 园豆:124 (初学一级) | 2020-06-03 13:39

@IT_Poor_Bird: 那个是wpf类库自己实现的。这个事件触发后会更新UI

支持(0) 反对(0) 会长 | 园豆:12401 (专家六级) | 2020-06-03 13:43

@会长: 是的 ,我就是想知道这个是哪个类库实现的 我要反编译进去看下源码

支持(0) 反对(0) IT_Poor_Bird | 园豆:124 (初学一级) | 2020-06-03 13:44

@IT_Poor_Bird: 这个我没研究过,你看的真细啊

支持(0) 反对(0) 会长 | 园豆:12401 (专家六级) | 2020-06-03 13:46
0

曾经我也有这个疑问。。后来忘了谁跟我说的,框架自己实现了

猝不及防 | 园豆:2731 (老鸟四级) | 2020-06-04 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册