【问题标题】:When to implement iNotifyPropertyChanged interface?何时实现 iNotifyPropertyChanged 接口?
【发布时间】:2011-02-28 01:41:23
【问题描述】:

据我了解,INotifyPropertyChanged 在处理与一个对象源相关的 UI 元素时似乎非常有用。我只是好奇为什么 .net 框架中的某些类可能以某种方式与 UI 一起使用,但没有实现INotifyPropertyChanged?例如SerialPort 类。

是否有使用INotifyPropertyChanged 的推荐指南?还是我完全误解了接口的概念?

这个问题是在尝试将几个自定义用户控件链接到SerialPort 类后提出的。

【问题讨论】:

    标签: c# .net inotifypropertychanged


    【解决方案1】:

    你正确理解了界面。

    但是认为SerialPort 类在某种程度上与 UI 相关是一件坏事。这个类应该允许访问这个资源。不多也不少。如果您想以某种方式显示与SerialPort 相关的信息,您应该创建自己的业务类,它将使用SerialPort 并通过属性和INotifyPropertyChanged 公开所需的信息。

    【讨论】:

    • 啊,现在开始有意义了。是否会出现同时作为数据源的类直接使用 INotifyPropertyChanged 而无需创建业务类的情况?
    【解决方案2】:

    通常 INotifyPropertyChanged 是在具有为 WPF 或 Silverlight 开发的应用程序的业务逻辑的类上实现的。

    如果其他应用程序(如 WCF 或 Winform 2.0)使用 SerialPort 类,则 INotifyPropertyChanged 将几乎没有用处。

    无论如何它都是 WPF 框架引擎可以理解的接口。 并且您可以创建一个可以实现 INotifyPropertyChanged 并在内部持有 SerialPort 类的业务类。

    希望它有意义。

    【讨论】:

    • 我不是来自计算机科学/开发背景,因此“业务逻辑”、“工厂”、“建设者”等术语对我来说非常陌生。这些术语属于什么一般主题以便我可以阅读?
    • 当一个人开车时,他/她必须熟悉“刹车”、“离合器”、“加速器”、“齿轮”等术语。您可以在上述软件中考虑上述术语汽车。模糊术语的业务逻辑正在将您的需求转换为软件代码。尝试探索 Roger Pressman 的“软件工程”,阅读软件设计和架构。
    【解决方案3】:

    INotifyPropertyChanged 是允许对象与其绑定进行通信,所以从这个意义上说你的理解是正确的。

    你可以wrap SerialPort 来提供这个。

    我不确定为什么 SerialPort 没有实现这个接口,所以从这个意义上说,我无法回答这部分问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-10
      • 2011-11-14
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 2010-10-04
      • 2011-10-18
      • 1970-01-01
      相关资源
      最近更新 更多