首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ContentPresenter with ContentTemplateSelector ContentPresenter= NULL上下文?

ContentPresenter with ContentTemplateSelector ContentPresenter= NULL上下文?
EN

Stack Overflow用户
提问于 2012-11-22 21:12:28
回答 2查看 1.4K关注 0票数 3

我有一个Windows应用商店应用程序,它使用数据模板和数据平台选择器来设置各种显示内容的样式。

我有一个返回基于参数的模板的TemplateSelector。这个模板还使用了contentpresenter,它本身就有一个TemplateSelector。

我尝试过这样调用内部的TemplateSelector:

代码语言:javascript
复制
<DataTemplate x:Key="Template1">
<Grid>
    <Border Background="{StaticResource ApplicationBackgroundBrush}">
        <Grid>
            <ContentPresenter Content="{TemplateBinding DataContext}">
                <ContentPresenter.ContentTemplateSelector>
                    <my:MyTemplateSelector />
                </ContentPresenter.ContentTemplateSelector>
            </ContentPresenter>
        </Grid>
    </Border>
</Grid>

使用TemplateBinding时,我得到一个异常,即找不到DataContext属性(不能从字符串创建DependencyProperty)。

我的第一次尝试是这样的:

代码语言:javascript
复制
<DataTemplate x:Key="Template2">
<Grid>
    <Border Background="{StaticResource ApplicationBackgroundBrush}">
        <Grid>
            <ContentPresenter Content="{Binding DataContext}">
                <ContentPresenter.ContentTemplateSelector>
                    <my:MyTemplateSelector />
                </ContentPresenter.ContentTemplateSelector>
            </ContentPresenter>
        </Grid>
    </Border>
</Grid>

这样做的问题是,当调用TemplateSelector时,Content和DataContext为空。我该如何解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2014-06-17 22:58:27

尝试一下,我遇到了类似的问题,因为我错过了Property关键字。希望它适用于你的情况。

代码语言:javascript
复制
Content={TemplateBinding Property=DataContext}
票数 0
EN

Stack Overflow用户

发布于 2016-02-28 03:41:22

如果您使用ContentControl而不是ContentPresenter,它就可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13513480

复制
相关文章

相似问题

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