[英]load user control dynamically in wpf using mvvm
您好,有2個usercontrol(WPF)。 我必須根據條件加載此控件。 我有ReadingBookDoubleView.xaml和ReadingBookDoubleViewpdf.xaml,這是我的代碼。
<UserControl.Resources>
<DataTemplate DataType="{x:Type viewModels:ReadingBookDoubleVM}">
<view:ReadingBookDoubleViewPdf/>
</DataTemplate>
<DataTemplate DataType="{x:Type viewModels:ReadingBookDoubleVM}">
<view:ReadingBookDoubleView/>
</DataTemplate>
</UserControl.Resources>
我在Viewmodel類中有本書,該書綁定到我在其中加載用戶控件的該視圖。 我必須一次加載一個控件。如果書Kind是Pdf,那么我必須加載ReadingBookDoubleViewpdf控件,否則我必須加載ReadingBookDoubleView。
如何根據條件加載控件。
您可以將單個DataTemplate與Trigger一起使用:
<UserControl.Resources>
<DataTemplate DataType="{x:Type viewModels:ReadingBookDoubleVM}">
<ContentControl x:Name="Presenter" Content="{Binding}">
<ContentControl.ContentTemplate>
<DataTemplate>
<view:ReadingBookDoubleView />
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Kind}" Value="Pdf">
<Setter TargetName="Presenter"
Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<view:ReadingBookDoubleViewPdf />
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</UserControl.Resources>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.