0
我有一個WPF應用程序,其中有一個小數據摘要視圖,但用戶能夠將該視圖擴大到更大的顯示。數據內容基本相同,所以我正在考慮對兩者使用相同的視圖模型。現在使用MVVM,數據的顯示由DataTemplate控制。在WPF數據模板之間切換
怎樣的DataTemplates之間交換爲同一視圖模型?它甚至可能或者我需要爲小視圖和擴展視圖創建ViewModel?
我有一個WPF應用程序,其中有一個小數據摘要視圖,但用戶能夠將該視圖擴大到更大的顯示。數據內容基本相同,所以我正在考慮對兩者使用相同的視圖模型。現在使用MVVM,數據的顯示由DataTemplate控制。在WPF數據模板之間切換
怎樣的DataTemplates之間交換爲同一視圖模型?它甚至可能或者我需要爲小視圖和擴展視圖創建ViewModel?
使用ContentPresenter
內 「主」(注意引號)DataTemplate
,有的DataTriggers
動態地改變它的ContentTemplate
:
<DataTemplate>
<ContentPresenter x:Name="Content"
Content="{Binding}"
ContentTemplate="StaticResource myViewModel1"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding SomeVMProperty}" Value="SomeValue">
<Setter TargetName="Content" Property="ContentTemplate" Value="{StaticResource myViewModel2}"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
這樣,當DataTrigger
被觸發時,ContentTemplate
會myViewModel2
,當它不是時,它將是myViewModel1
。