ITKeyword,专注技术干货聚合推荐

注册 | 登录

MVVM设计模式基础知识--INotifyPropertyChanged接口

wangshubo1989 分享于 2015-08-21

推荐:MVVM设计模式基础知识--ICommand接口

命令是 Windows Presentation Foundation (WPF) 中的输入机制,它提供的输入处理比设备输入具有更高的语义级别。 命令有若干用途: 第一个用途是将语义以及调用

2019阿里云双12.12最低价产品入口(新老用户均可),
地址https://www.aliyun.com/minisite/goods

在.NET平台上,数据绑定是一项令人十分愉快的技术。利用数据绑定能减少代码,简化控制逻辑。
通常,可以将某个对象的一个属性绑定到一个可视化的控件上,当属性值改变时,控件上的显示数据也随之发生变化。要实现这一功能,只需要为自定义对象实现 INotifyPropertyChanged 接口即可。此接口中定义了 PropertyChanged 事件,我们只需在属性值改变时触发该事件即可.

INotifyPropertyChanged 接口是 WPF/Silverlight 开发中非常重要的接口, 它构成了 ViewModel 的基础.

INotifyPropertyChanged接口:
向客户端发出某一属性值已改变的通知

命名空间:System.ComponentModel
程序集:System(在System.dll中)
语法:public interface INotifyPropertyChanged

INotifyPropertyChanged成员:

推荐:Silverlight/WPF/Windows Phone 开发之MVVM设计模式之入门

1、新建一个WPF、Silverlight或Windows Phone的项目。2、在项目中新建几个文件夹,Models、Views、ViewModels、Data、Service、Commands。3、在ViewModels文

INotifyPropertyChanged.PropertyChanged事件
在更改属性时发生

语法:event PropertyChangedEventHandler PropertyChanged

INotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。

若要在将客户端与数据源进行绑定时发出更改通知,则绑定类型应具有下列任一功能:
*实现 INotifyPropertyChanged 接口(首选)
*MVVM设计模式基础知识–INotifyPropertyChanged接口

下面的代码示例演示如何实现 INotifyPropertyChanged 接口的 PropertyChanged 事件。

// This is a simple customer class that 

  // implements the IPropertyChange interface.

  public class DemoCustomer  : INotifyPropertyChanged
  {
      // These fields hold the values for the public properties.

      private Guid idValue = Guid.NewGuid();
      private string customerNameValue = String.Empty;
      private string phoneNumberValue = String.Empty;

      public event PropertyChangedEventHandler PropertyChanged;

      private void NotifyPropertyChanged(String info)
      {
          if (PropertyChanged != null)
          {
              PropertyChanged(this, new PropertyChangedEventArgs(info));
          }
      }

      // The constructor is private to enforce the factory pattern.

      private DemoCustomer()
      {
          customerNameValue = "Customer";
          phoneNumberValue = "(555)555-5555";
      }

      // This is the public factory method.

      public static DemoCustomer CreateNewCustomer()
      {
          return new DemoCustomer();
      }

      // This property represents an ID, suitable

      // for use as a primary key in a database.

      public Guid ID
      {
          get
          {
              return this.idValue;
          }
      }

      public string CustomerName
      {
          get
          {
              return this.customerNameValue;
          }

          set
          {
              if (value != this.customerNameValue)
              {
                  this.customerNameValue = value;
                  NotifyPropertyChanged("CustomerName");
              }
          }
      }

      public string PhoneNumber
      {
          get
          {
              return this.phoneNumberValue;
          }

          set
          {
              if (value != this.phoneNumberValue)
              {
                  this.phoneNumberValue = value;
                  NotifyPropertyChanged("PhoneNumber");
              }
          }
      }
  }

推荐:MVVM设计模式

转自:[译]WPF 应用程序和MVVM设计模式 ——Josh Smith 这篇文章讨论: 模式与WPF MVP模式 为什么MVVM更加适用于WPF 用MVVM构建一个应用程序   内容:   专业

在.NET平台上,数据绑定是一项令人十分愉快的技术。利用数据绑定能减少代码,简化控制逻辑。 通常,可以将某个对象的一个属性绑定到一个可视化的控件上,当属性值改变时,控件上的显示数据也随

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。