2010-12-16 52 views
2

我們使用Caliburn.Micro獲取一個簡單的Windows Phone 7應用程序,該應用程序拍攝特定庫存項目的照片,然後用用戶輸入的信息保存圖像和xml文件。在Windows Phone 7 ViewModels之間進行通信

我有第一個屏幕點擊按鈕和「CameraCaptureTask」獲取照片,我讀取照片並保存到存儲,但現在我不知道如何將用戶帶到另一個視圖,並傳遞文件名和生成的唯一ID第一個視圖。

我試過NavigationService.Navigate(「...」)查詢字符串,但我無法在ViewModel中獲取Querystring。

我很困惑,比如說你製作嚮導的時候,你如何從一個視圖傳遞到另一個視圖 - 而不使用單例或黑客方式。有一個很好的Caliburn.Micro方式,有一個很好的例子嗎?

回答

1

我無法專門針對Caliburn說話,但是通過M-V-VM模式,您的視圖模型僅通過突變與模型進行通信。

就你而言,我期望該模型是庫存項目的集合以及一些其他信息,例如當前選定的庫存項目。拍攝照片創建一個新的股票項目,將其添加到集合中,然後將當前選定的股票項目設置爲剛剛創建的項目。

當您導航到新視圖時,將從模型中拾取當前選定的棍子項目。

2

當您使用Caliburn Micro時,它會自動將查詢字符串中的鍵映射到View Model上的屬性。

例如,如果您導航到「/Views/ProductView.xaml?Id=42」然後ProductViewModel.Id將等於42

1

使用由奈傑爾給出的方法會奏效。但是請不要忘記,ProductView中的Id屬性不會在構造函數中設置。它在OnActivate()方法中設置。