2011-09-14 42 views
1

我有一個關於多個用戶控件視圖與相同的視圖模型類型的問題。我似乎無法找到我的困惑的具體答案,但這是相當投機的。MVVM多個視圖棱鏡相同的ViewModel

我有。

<StackPanel Orientation="Vertical"> 

     <TextBlock Text="Signature Summary" FontSize="14" FontWeight="Bold" TextAlignment="Center" Height="30"/> 

     <my:ParameterFileSummaryView DataContext="{Binding ParamterFile1ViewModel}"/> 

     <my:ParameterFileSummaryView DataContext="{Binding ParamterFile2ViewModel}"/> 

     <my:ParameterFileSummaryView DataContext="{Binding ParamterFile3ViewModel}"/> 

     <my:ParameterFileSummaryView DataContext="{Binding ParamterFile4ViewModel}"/> 

     <my:ParameterFileSummaryView DataContext="{Binding ParamterFile5ViewModel}"/> 

    </StackPanel> 

堆棧面板是具有用於棱鏡/統一的IoC架構的扶養屬性視圖模型的datacontext的主視圖內的容器。

因此它們將這些單獨視圖的數據內容通過另一個界面綁定到主視圖界面的屬性。

這一切似乎都可以正常工作,並且ParameterFileSummaryView中元素的綁定與第一個參數ParamterFile1ViewModel上設置的值很好地綁定。

這正是我想要的。但是對於這些ViewModel來說,這些ViewModel建立在主窗口的ViewModel中,而不是在Unity容器之外......這一切都讓人感覺有點不好意思。有沒有更清晰的方式來實現我所嘗試的?

道歉,如果它真的是一個沒有爭議的問題......但我不能看到樹木。如果問題混淆,我會添加修改,請耐心等待我不是專家:)。

+1

所以使主窗口的ViewModel通過從容器中解析它們來實例化這些ViewModel。我想你幾乎已經到達了那裏。 – Jon

+0

出於某種原因,我在想我的所有具體類都由容器構建,並由我的界面收縮,其中按照定義單件。但當然,我可以選擇如果這是真的或不...我不認爲我有我的主視圖模型中的容器的引用,也許我可以在它的構造函數中傳遞多個「子」視圖模型? – tigerswithguitars

+2

這也可以工作(讓容器自動注入它們)。 – Jon

回答

0

自己回答的問題和@Jon檢查的完整性...對不起,因爲你的問題董事會混亂。