2011-03-02 103 views
0

我正在开发项目并学习SL/MVVM。我使用MVVM光源,并感觉好像我对事物有一个体面的把握。我理解绑定控制到虚拟机并发送事件/命令给虚拟机。Silverlight MVVM问题

我有几个问题:

在MVVM应用程序如何在Application对象从虚拟机访问,调用Application.Install或检查安装状态?或者你只是坚持在这种情况下的代码背后的代码?我想这可以通过MVVM消息来完成,但是你仍然可以在后面的代码中注册一个监听器。

我不确定是否会发生这种情况,但是如何从VM中访问某个方法从View/Control中执行某些无法通过数据绑定或命令/事件来完成的操作?这是依赖对象/属性起作用吗?

回答

1

该应用程序应该提供服务以获取与Application singleton相关的信息;就像在整个应用程序中可以使用的任何数据一样;你的或框架。

如果你曾经需要从视图模型,这将是在寻找到一个自定义ControlUserControl提供所需的性能点上UIElement/FrameworkElement/Control访问的方法。这通常通过TriggersBehaviors来解决。

+0

应用程序是否提供通常通过消息传递实现的服务?我可以看到在Application对象中注册和处理消息,用于诸如Application.Install之类的事情。 – 2011-03-02 18:10:38

+0

@DerekBeattie如果您将应用程序分解为不同的独立项目/模块,那么是可以使用消息传递框架。如果您正在利用IoC/DI框架,则可以在关心使用该服务的类中注入该服务。在服务可以被注册到选择容器的行为类似于单例的情况下...因此允许您根据需要将功能添加到IApplicationService,或者利用Application Singleton。 – 2011-03-02 18:17:03