2011-03-02 119 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