附加的属性能否在INotifyPropertyChanged框架内工作

本文关键字:INotifyPropertyChanged 框架 工作 属性 性能 | 更新日期: 2023-09-27 18:23:38

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

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

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

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

非常感谢!

附加的属性能否在INotifyPropertyChanged框架内工作

两件事:

(1) 为了保持MVVM模式,我建议对这些附加的属性使用样式触发器,并将它们完全排除在视图模型之外。

(2) 同样,我不会让你的视图模型知道像"背景色"这样纯粹是视图问题的概念。如果您的业务逻辑/VM中有某种东西对视图关注点(如颜色)起关键作用,则可以使用值转换器将视图模型所知道的内容转换为视图需要做的内容。