2010-10-21 68 views
1

我們正在研究wpf應用程序的mvvm方法。wpf viewmodel第一種方法 - 在同一視圖中使用相同usercontrol的多個實例

我們跟隨視圖模型approach..I意味着我們創建視圖模型,並使用

<DataTemplate DataType="{x:Type vm:CityViewModel}"> 
     <vw:Cities/> 
    </DataTemplate> 

在這個城市將它們映射 - 查看..我有一個用戶控件... ...這我使用多次...

<view:UserControl1 Grid.Row="2" DataContext="{Binding UcViewModel}" Margin="291,5,291,-5"></view:UserControl1> 
<view:UserControl1 Grid.Row="3" DataContext="{Binding Uc2ViewModel}" ></view:UserControl1> 

我們在CityViewmodel內部創建了多個用戶控件視圖模型實例。

這種方法是否符合mvvm?

回答

0

我會認爲MVVM模式是一個寬鬆的指南。

理想情況下,您正在尋找的是一個可測試的應用程序。用戶界面中的任何代碼都很難測試。

如果這在你的情況下適用,那麼就去做吧,但要牢記可測性。

在我正在處理的應用程序中,我有一個ItemsControl,它具有相同UserControl和ViewModel的6個實例。

編輯:

public class InsuranceViewModel 
{ 
    public ObservableCollection<UnderwritingViewModel> Underwriting { get; set; } 
} 

在視圖中我有:

<ItemsControl ItemsSource="{Binding Path=Underwriting}"> 
    <ItemsControl.ItemTemplate> 
    <DataTemplate> 
     <!-- this could be another UserControl --> 
     <views:UWView DataContext="{Binding}" /> 

     <!-- or a full data template defined in this view --> 
    </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

或者你可以把這個在你的資源:

所以,我n效果,你所要做的就是在你的DataContext中創建新的ViewModel實例,模板將負責視圖的創建。

+0

在案例....你有比較視圖模型實例差異用戶控制實例??? – Relativity 2010-10-21 21:55:06

相關問題