2011-04-11 113 views
0

我想知道如果有人可以給我一些關於我遇到的Silverlight問題的指導嗎?如何從視圖模型導航到視圖

我現在正在做的是使用MVVM模式在Silverlight中構建一個頁面來檢索和顯示我的數據。我的頁面將成爲標準的「列表」類型頁面,使用數據網格顯示和過濾數據。

我想要做的是,如果用戶單擊此列表頁面上的編輯按鈕,我想導航到一個詳細信息頁面,該頁面將包含一個數據表單,我想將它綁定到相同的數據集合綁定到列表頁面的數據網格。我想要發生的事情是List ViewModel必須創建Details Page並將Details Page datacontext設置爲自身(即List ViewModel的實例)。我不知道如何創建視圖,導航到視圖並將引用傳遞給視圖模型。

您可能想知道爲什麼我想要一個採集集合的詳細信息頁面。這樣我就可以模擬我的用戶在他們當前的訪問應用程序中熟悉的行爲。大多數情況下,當用戶過濾列表視圖時,它可以方便地進入頁面,在頁面中他們可以導航並編輯過濾器中的任何結果,而無需重複打開和關閉詳細信息頁面。

回答

1

MVVM非常適合這一點。假設他們共享相同的視圖模型,因爲數據是相同的,您可以自動更新這兩個位置的數據。

但是,我會避免讓視圖模型來創建視圖。這常常被視爲實現MVVM的錯誤方式,因爲它會創建從視圖模型到視圖的耦合,這可能會在以後引發麻煩。

具有示例代碼的解決方案在this博客文章中進行了描述。

+0

我有點困惑。您提到的博客文章演示瞭如何將網格視圖變爲編輯模式。我真的知道如何創建一個視圖,將它的視圖模型設置爲我的列表視圖,並導航到該視圖。謝謝 – silverlightStumped 2011-04-11 23:45:07