【问题标题】:Can attached properties work within the INotifyPropertyChanged framework?附加属性可以在 INotifyPropertyChanged 框架内工作吗?
【发布时间】:2012-02-27 11:27:46
【问题描述】:

首先,请原谅(并纠正!)任何误解 - 我对任何 .NET 都是全新的。

我和我的团队正在使用 MVVM 模式在 Silverlight 中构建一个应用程序。现在,我们为具有各种属性(例如其背景颜色)的对象创建了一个视图模型。 VM 实现 INotifyPropertyChanged,以便在更新这些属性时通知侦听器。

问题是这些是画布上的拖放对象,我们希望在每次更改画布上的位置时运行一些逻辑。但是,我的理解是,因为 Canvas.Left 和 Canvas.Top 是 附加属性,我不能像对待对象原生属性那样对待它们。

有什么方法可以使这些附加属性与 INotifyPropertyChanged 一起使用?如果没有,对 Canvas.Left 和 Canvas.Top 属性的变化做出反应的最佳方式是什么。

非常感谢!

【问题讨论】:

    标签: c# .net silverlight mvvm


    【解决方案1】:

    两件事:

    (1) 为了与 MVVM 模式保持一致,我建议对这些附加属性使用 style triggers,并将它们完全排除在您的视图模型之外。

    (2) 按照同样的思路,我不会让您的视图模型知道像“背景颜色”这样纯粹是视图问题的概念。如果您的业务逻辑/VM 中有某些内容与颜色等视图相关,您可以使用value converters 将视图模型知道的内容转换为视图需要执行的操作。

    【讨论】:

      猜你喜欢
      • 2011-11-01
      • 2020-07-27
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      • 2010-09-08
      • 2011-09-12
      相关资源
      最近更新 更多