2011-05-09 22 views
0

我已經編寫了一個基於MSDN上的MVVM客戶示例的項目。我將如何從一個子視圖模型添加一個新的工作空間?我不喜歡讓Workspaces集合成爲靜態的想法,因爲這看起來與這種模式不符。從子視圖模型中打開新的工作空間

我在雙擊allcustomers視圖中的元素時,正在有效嘗試添加新的客戶視圖。

在此先感謝

+0

什麼是工作區? – Will 2011-05-09 17:04:36

+0

視圖模型 - 父視圖模型包含這些視圖模型的可觀察集合(它們在msdn示例中稱爲工作空間)。這些視圖模型然後顯示在一個選項卡控件 – jbd 2011-05-09 17:08:45

回答

0

一個「簡單」的解決方案是將ParentViewModel傳遞到子視圖模型的構造。然後,您可以在孩子的代碼中從您想要的任何位置簡單地調用ParentViewModel的Add邏輯。

+0

我試過這個,它絕對有效,但我不喜歡這個。最後,我決定將一個事件添加到子視圖模型。父視圖模型會監聽它,然後用它自己的邏輯進行響應。我不認爲子視圖模型應該知道他們父母的任何事情。感謝您的建議,但 – jbd 2011-05-11 16:35:16

0

我意識到這是一個較舊的帖子,但爲了記錄,我添加了一個靜態WorkspaceManager類,它公開了用於添加和激活Workspaces的方法。 WorkspaceManager維護工作區集合。任何類都可以調用靜態方法,因此主窗口或父類不必維護Workspaces集合,也不必具備有關如何實際實現Workspace功能的知識。

J