首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐式DataTemplate的WPF显式DataTemplate等价

隐式DataTemplate的WPF显式DataTemplate等价
EN

Stack Overflow用户
提问于 2022-09-26 12:44:03
回答 1查看 34关注 0票数 0

通过使用隐式数据模板,我可以引用窗口资源中的模板,而无需使用模板中的键,如下所示:

代码语言:javascript
复制
<Window.Resources>
    <DataTemplate DataType="{x:Type viewModel:FriendDetailViewModel}">
        <view:FriendDetailView/>
    </DataTemplate>
</Window.Resources>
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width= "200"/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <ContentControl Grid.Row="1" Grid.Column="1" Content="{StaticResource FriendDetailViewModel}">
    </ContentControl>
</Grid>

也就是说,FriendDetailViewModel中的ContentControl可以检测DataTemplate中的FriendDetailViewModel并正确地显示其内容。

但是,我试图在没有隐式数据模板的情况下这样做,但是我无法获得相同的结果。例如,如下所示:

代码语言:javascript
复制
<Window.Resources>
    <DataTemplate x:Key="FriendDetailViewData">
        <view:FriendDetailView DataContext="{Binding FriendDetailViewModel}"/>
    </DataTemplate>
</Window.Resources>
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width= "200"/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <ContentControl Grid.Row="1" Grid.Column="1" Content="{Binding FriendDetailViewData}">
    </ContentControl>
</Grid>

ContentControl只是打印System.Windows.DataTemplate。有没有一种不使用隐式数据模板来获得等效行为的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-26 13:00:47

赋值

代码语言:javascript
复制
Content="{StaticResource FriendDetailViewData}"

没有任何意义。它将DataTemplate分配给Content属性。

您仍然希望使用FriendDetailViewModel实例作为内容,并明确地设置ContentTemplate:

代码语言:javascript
复制
<Window.Resources>
    <DataTemplate x:Key="FriendDetailViewData">
        <view:FriendDetailView/>
    </DataTemplate>
</Window.Resources>

<ContentControl Content="{StaticResource FriendDetailViewModel}"
                ContentTemplate="{StaticResource FriendDetailViewData}"/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73854354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档