簡體   English   中英

使用mvvm在wpf中動態加載用戶控件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM