2012-04-03 64 views
0

我有一个视图挂钩到ViewModel。我有一个由foo.Current暴露的单例类。我有一个属性,该类将作为调用foo.Current函数的按钮单击命令的结果而改变。我希望能够将文本框的文本绑定到该值,并且该值更新文本框时会更新。我的ViewModel确实实现了INotifyPropertyChanged,并且在视图模型上有更新控件的其他属性。我可以用这个新值更新ViewModel的最佳方式是什么? 我想我需要找出一种方法来让Singleton类更新ViewModel。MVVM绑定与暴露财产

+0

发布一些代码片段,特别是foo.Current属性,要绑定的文本和xaml绑定。 – 2012-04-03 05:55:17

+0

INotifyPropertyChanged的实现只是在更新ViewModel属性时更新UI的正确方法。如何通过构造函数或通过Singleton foo.Current获取ViewModel的实例并没有什么不同。 – Andris 2012-04-03 05:57:14

回答

2

有没有在目前的情况下没有“最好”的方式,选项如下:

  1. 定义您的视图模型的属性和视图模型传递给你的单身。辛格尔顿应该改变它自己的相关财产。从单
  2. 移动性能视图模型或包括在视图模型本身的单身
  3. 从INotifyPropertyChanged的改变财产上的单身
  4. 继承单和你的虚拟机连接到单的PropertyChanged事件创建一个事件。并监控你的财产名称。
  5. ...

一个最简单的将是第一个选项虽然有可能会在你的应用中的一些架构上的不一致应进行治疗。

+0

谢谢!我在单例上实现了INotiftPropertyChanged,并在ViewModel上创建了一个事件处理程序。 – 2012-04-03 16:07:38

+0

不客气:) – 2012-04-03 17:36:09

0

如果我理解得很好,我会使用Observer模式。