2011-08-04 20 views
1

Iツリービューを表示することになって、次のコードを持っている(元のコードは、このように複雑な制御hirerchy、より複雑である):WPF - TreeViewコントロールの項目を表示することはできません

<TreeView ItemsSource="{Binding TreeRoot}" 
     HorizontalAlignment="Left"> 


    <TreeView.Resources> 

     <DataTemplate x:Key="CTemplate"> 
      <Border > 

       <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*"/> 
         <ColumnDefinition Width="auto"/> 
        </Grid.ColumnDefinitions> 

        <ToggleButton 
          Grid.Column="1" 
      x:Name="Expander" 
          HorizontalAlignment="Right" 
          ClickMode="Press"/>           


        <TextBlock Text="{Binding Name}" 
       Grid.Column="0" /> 
       </Grid> 

      </Border> 
      <DataTemplate.Triggers> 
       <DataTrigger Binding="{Binding Path=HasItems, RelativeSource={RelativeSource AncestorType={x:Type TreeViewItem}}}" Value="False"> 
        <Setter TargetName="Expander" Property="Visibility" Value="Hidden"/> 
       </DataTrigger> 
      </DataTemplate.Triggers> 

     </DataTemplate> 



     <Style TargetType="{x:Type TreeViewItem}" x:Key="aaa"> 
      <Setter Property="ItemsSource" Value="{Binding Children}"/> 
    <Setter Property="IsExpanded" Value="{Binding Path=IsExpanded,Mode=TwoWay}"/>     


      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type TreeViewItem}"> 
         <StackPanel> 
          <Border Name="Bd" 
             Background="{TemplateBinding Background}"> 

          </Border> 
          <ItemsPresenter x:Name="ItemsP" /> 
         </StackPanel> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsExpanded" Value="false"> 
           <Setter TargetName="ItemsP" 
             Property="Visibility" 
             Value="Collapsed"/> 
          </Trigger> 

         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 

     </Style> 

     <Style TargetType="{x:Type TreeView}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type TreeView}"> 
         <Border BorderBrush="{TemplateBinding BorderBrush}" 
            BorderThickness="{TemplateBinding BorderThickness}"> 
          <DockPanel> 
            <ItemsPresenter/> 
           </DockPanel> 

         </Border> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="ItemContainerStyle" Value="{StaticResource aaa}" /> 
      <Setter Property="ItemTemplate" Value="{CTemplate}" /> 
     </Style> 
    </TreeView.Resources> 
</TreeView> 

あなたは私の姿を助けてもらえ私のアイテムが表示されない理由を教えてください。私はのContentPresenterを追加した上

<Style TargetType="{x:Type TreeViewItem}" x:Key="aaa"> 
    ... 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type TreeViewItem}"> 
       <StackPanel> 
        <Border Name="Bd" Background="{TemplateBinding Background}"> 
         <ContentPresenter x:Name="PART_Header" 
              ContentSource="Header" 
              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
              SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> 
        </Border> 
        <ItemsPresenter x:Name="ItemsP" /> 
       </StackPanel> 
       ... 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

おかげで(ページが空白表示されます)、 李

答えて

1

あなたは、ツリービューアイテムのヘッダーを示す何かを持っていません。

関連する問題