ContentPresenter和GridViewRowPresenter不能相互包含或排他

时间:2012-04-05 10:59:37

标签: wpf

如何在下面的代码中构建控件?

            <StackPanel>
                <!-- Принципиальные схемы -->
                <ContentPresenter Content="{Binding principlies}" Grid.Row="4" Grid.Column="1" 
                              ContentTemplate="{StaticResource ProjectContentExpander}">
                    <ContentPresenter.Resources>
                        <Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource principlies}"/>
                    </ContentPresenter.Resources>
                </ContentPresenter>
            </StackPanel>

错误:在FrameworkTemplate中,ContentPresenter和GridViewRowPresenter不能相互包含或排他。 如果删除样式块,则错误消失。

2 个答案:

答案 0 :(得分:1)

我假设原则是x:在xaml中定义的DataTemplate的键,但是DataTemplate(继承了FrameworkTemplate)不能设置为内容。这就是你得到这个例外的原因。此外,ContentPresenter.Content属性是原则的数据绑定,它期望DependencyObject或来自源的数据项。

请原谅我,如果我错过了你的问题。提供更多的xaml将明确地阐明一些亮点。

此致

答案 1 :(得分:0)

          <StackPanel>
                <Border>
                    <ContentPresenter Content="{Binding principlies}" 
                                  ContentTemplate="{StaticResource ProjectContentExpander}">
                        <ContentPresenter.Resources>
                            <Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource principlies}"/>
                        </ContentPresenter.Resources>
                    </ContentPresenter>
                 </Border> 
          </StackPanel>

解决问题