2012-05-06 34 views
1

我有幾個視圖,以不同的方式表示相同的數據(網格,文本框等),並在應用程序中的不同位置。 每個視圖都綁定到不同的視圖模型。從不同的視圖執行相同的命令 - MMVM

我有一個像添加新,更新,刪除等等在選定的行上的命令。這些命令可以在主工具欄(不同視圖)的活動視圖,該視圖上的按鈕,右鍵菜單和其他位置執行。 我不想爲命令可能出現的每個場景重寫命令。 有沒有其他的方式來預製它,而不會重複命令的代碼,並且沒有每個場景的大規模切換。

謝謝。

回答

1

您可以使用在一個主要位置(窗口例如) 中保存命令的CommandBindings,以及從其範圍內的每個視圖或控件調用它。 或創建一個「CommnadViewModel」,每個特定的viewModel將在其構造函數上獲得並綁定到它。 使用Unity或其他容器更容易。

+0

Janushirsha,問題是我有很多類似於我的應用程序的命令。並不是所有的東西都到處出現。所以這些命令的視圖模型的概念是不相關的。另外問題在於命令本身正在使用視圖模型中的數據,例如所選的行。 – OrrM

+0

嗨,事實上,vm's之間的關係通常是mvvm模式中的敏感點。不需要將所有的commnads放在一起,而是封裝每個概念功能,並通過應用程序機制(messenger或類似的東西)或調用vm命令時爲其注入所需的功能信息。 – Janushirsha

相關問題