2012-04-05 20 views
1

如何在下面的代碼中構建控件?ContentPresenter和GridViewRowPresenter不能互相包含或獨佔

  <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不能相互包含或排他。 如果刪除Style塊,錯誤消失。

回答

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> 

解決問題

1

我假設原則是在xaml中定義的DataTemplate的x:Key,但不能將DataTemplate(它繼承FrameworkTemplate)設置爲內容。這就是爲什麼你會得到這個例外。而且,ContentPresenter.Content屬性是原理的數據綁定,該屬性期望DependencyObject或數據項來自源。

請原諒,如果我誤解了你的問題。提供更多的xaml將會定義一些亮點。

問候

+0

principlies是其中放置上述代碼的用戶控件的DataContext的的字段。如果刪除Style塊,錯誤消失。 – psct 2012-04-05 19:44:39