2013-05-09 66 views
0

我的項目使用Prism和Unity使用MVVM設計模式,基本上遵循Brian Lagunas着名的Prism視頻,但視頻並未提及如何創建/使用部分視圖,其他用戶控件中使用的用戶控件。WPF Prism MVVM - 同一個頁面中的「部分視圖命令」,如何訂閱命令?

我想創建自定義分部視圖(UserControl)可以在其他頁面(用戶控制)中重用。例如,一個視圖包含一個「瀏覽」按鈕綁定SelectFileCommand並在完成時發佈文件路徑。如果我在一個頁面中有兩個此View,我如何訂閱正確的命令?兩個命令都稱爲相同的名稱。

對於使用局部視圖:直接在頁面

container.RegisterType<IPartialView, PartialView>(); 

和使用視圖這樣的:

註冊視圖類型的模塊這樣

<views:PartialView DataContext="{Binding PartialViewModel}" /> 

我不知道如果這是實現Prism MVVM模式的正確方法。請讓我知道這是否是錯誤的想法,以及如何實施這些部分視圖。

非常感謝。

回答

0

我不知道我明白你的需求,但我會試試看。

如果您的局部視圖位於另一個模塊中,首先,您不能在此模塊中使用其他模塊。你可以使用一些IPartialView,但我不確定這是否需要,棱鏡給出了更簡單的解決方案。

做我認爲你想要做的最簡單的方法是有一個區域,你想有你的局部視圖。您可以在模塊定義中使用RegisterViewWithRegion將PartialView註冊到相應的區域。 這樣,如果您有幾次這個局部視圖,您將有幾個同名的區域,並且只有一個註冊模塊中的PartialView。只要給每個地區提供正確的DataContext。

+0

嗨,我正在尋找的是,我有一個類似的命令操作視圖,我想創建一個或兩個部分視圖來替換所有命令操作,因此所有部分視圖將在同一個模塊中。 – 2013-05-20 22:41:31

+0

它們中的每一個都會返回一個結果對象,例如,一個瀏覽按鈕,我可以將2或3放在我的視圖中,並且每個都返回一個文件路徑。因此,問題視圖有一個命令,併發布相同的結果,當我有一個主視圖中的多個,如何訂閱結果?相同的局部視圖,相同的命令,如何區分?或者,也許這整個事情是一個壞主意。 – 2013-05-20 22:50:35