【问题标题】:Silverlight MVVM questionSilverlight MVVM 问题
【发布时间】:2011-03-02 17:45:34
【问题描述】:

我正在开发一个项目并在学习 SL/MVVM 的过程中。我正在使用 MVVM light,感觉好像我对事物有很好的把握。我了解将控件绑定到 VM 以及向 VM 发送事件/命令。

我有几个问题:

在 MVVM 应用程序中,如何从 VM 访问 Application 对象,以调用 Application.Install 或检查安装状态?还是您只是将其粘贴在该案例的视图后面的代码中?我想这可以通过 MVVM 消息传递来完成,但您仍然需要在后面的代码中注册一个侦听器。

我不确定这是否会发生,但是如何从 VM 访问视图/控件中的方法来执行无法通过数据绑定或命令/事件完成的操作?这是依赖对象/属性发挥作用的地方吗?

【问题讨论】:

    标签: silverlight mvvm


    【解决方案1】:

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

    如果您曾经需要从 ViewModel 访问 UIElement/FrameworkElement/Control 上的方法,这将是查看自定义 ControlUserControl 以提供所需行为的重点.这通常通过TriggersBehaviors 解决。

    【讨论】:

    • 应用提供服务一般是通过消息传递来实现的吗?我可以看到在 Application 对象中注册和处理诸如 Application.Install 之类的消息。
    • @DerekBeattie 如果您将应用程序分成不同的单独项目/模块;那么是的,可以使用消息传递框架。如果您正在利用 IoC/DI 框架,您可以将服务注入到关心使用该服务的类中。在幕后,该服务可以注册到选择的容器中以表现得像一个单例......因此允许您根据需要将功能添加到 IApplicationService 或利用应用程序单例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多