Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何在不进行显式调用的情况下实现属性更改通知?_C# 4.0_Inotifypropertychanged - Fatal编程技术网

C# 4.0 如何在不进行显式调用的情况下实现属性更改通知?

C# 4.0 如何在不进行显式调用的情况下实现属性更改通知?,c#-4.0,inotifypropertychanged,C# 4.0,Inotifypropertychanged,在WPF中,存在双向数据绑定的概念,当数据库中更新对象属性值时,框架也会在实现INotifyPropertyChanged接口时更新视图 我在C#中寻找类似的功能,但不使用WPF 场景是,当对象属性更新时,会向该对象的其他使用者发送一系列通知,通知他们属性更改 因此,流程是: 更新数据库 通知消费者1 通知消费者2 这个过程需要三条独立的线。是否有一种方法可以实现WPF概念,即更改属性以更新消费者(例如,事件驱动),而无需明确通知消费者?在实现INotifyPropertyChanged时,只要

在WPF中,存在双向数据绑定的概念,当数据库中更新对象属性值时,框架也会在实现
INotifyPropertyChanged
接口时更新视图

我在C#中寻找类似的功能,但不使用WPF

场景是,当对象属性更新时,会向该对象的其他使用者发送一系列通知,通知他们属性更改

因此,流程是:

  • 更新数据库
  • 通知消费者1
  • 通知消费者2

  • 这个过程需要三条独立的线。是否有一种方法可以实现WPF概念,即更改属性以更新消费者(例如,事件驱动),而无需明确通知消费者?

    在实现
    INotifyPropertyChanged
    时,只要想让消费者知道属性已更改,就只需引发一个事件。无论有多少消费者正在收听该活动,您只需拨打一次电话即可发起该活动


    如果您试图实现的是减少样板代码,即每个setter只有一行代码,那么您可以查看一下。

    当实现
    INotifyPropertyChanged
    时,只要想让消费者知道属性已更改,您就只需引发一个事件。无论有多少消费者正在收听该活动,您只需拨打一次电话即可发起该活动


    如果您试图实现的是减少样板代码,即每个setter只有一行代码,那么您可以查看一下。

    这取决于您正在做什么,您到底想做什么win forms应用程序、ASP.NET webforms或MVC应用程序,或者什么?每个人都有一套不同的方法来处理这样的事情,这就是我为什么要问的原因。@Nomad101-啊,是的。。。底层架构是MVC。这取决于您正在做什么,您到底想做什么,一个win forms应用程序,一个ASP.NET webforms或MVC应用程序,或者什么?每个人都有一套不同的方法来处理这样的事情,这就是我为什么要问的原因。@Nomad101-啊,是的。。。底层架构是MVC。只是澄清一下,您的建议是针对非WPF/非Silverlight客户端的,对吗?这适用于任何C类。的确,WPF、Silverlight和WinForms使用此接口来了解何时更新UI,这是人们通常实现此接口的主要原因,但您也可以实现此接口以供自己使用。请澄清,您的建议适用于非WPF/非Silverlight客户端,对吗?这适用于任何C#类。的确,WPF、Silverlight和WinForms使用此接口来了解何时更新UI,这是人们通常实现此接口的主要原因,但您也可以仅为自己使用而实现它。