2009-06-22 54 views
1

我有具有MainView.xaml窗口,它加載衆多頁面對象在運行時,它們加載到的ViewModels,並將其顯示動態菜單 WPF應用程序。如何動態地將ViewModels連接到相應的視圖?

我MainViewModel有的ViewModels的ObservableCollection和我結合這些每到適當的意見在MainView.xaml文件。

但是,有沒有一種方法來自動化這樣,我不必每次添加頁面時都要做這些手動條目?

<Window.Resources> 

    <DataTemplate DataType="{x:Type vm:PageItemManageCustomersViewModel}"> 
     <v:PageItemManageCustomersView/> 
    </DataTemplate> 

    <DataTemplate DataType="{x:Type vm:PageItemManageEmployeesViewModel}"> 
     <v:PageItemManageEmployeesView/> 
    </DataTemplate> 

    <DataTemplate DataType="{x:Type vm:PageItemReportsViewModel}"> 
     <v:PageItemReportsView/> 
    </DataTemplate> 

</Window.Resources> 

這不是東西,一個「服務定位」或「集裝箱」應該做的事情,掛鉤起來欣賞到的ViewModels?我讀過以上是常用方式,以匹配MVVM模式中的ViewModels和Views,但它對我來說是位靜態。將不勝感激任何想法。

+0

這裏有一個答案:http://stackoverflow.com/questions/768304/wpf-mvvm-convention-over-configuration-for-resourcedictionary – 2009-06-22 16:47:07

回答

-1

另一種選擇是使用一個類來根據某個鍵來解析ViewModel。然後,您可以在主視圖中使用它來解析控件的正確視圖模型。

public static class ViewModelFactory 
{ 
public ViewModelBase Create(string someKeyHere) 
{ 
    //Some logic to resolve a view model 
} 
} 
相關問題