2012-09-06 27 views
0

我想使TreeViewItem與空列表框中的內容看起來像TreeViewItem沒有任何內容。例如,TreeViewItem「A」看起來像我所希望的。當TreeViewItem「B」中的列表框爲空時,我想讓「B」看起來像「A」。如何使TreeView內容爲空

<TreeView> 
     <TreeViewItem x:Name="A" Header="Header" /> 
     <TreeViewItem x:Name="B" Header="Header with empty list"> 
      <ListBox x:Name="localContent" ItemsSource="{Binding listContent}"> 
       <!--ListBox.Style> 
        <Style TargetType="ListBox"> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding listContent.Count}" Value="0"> 
           <Setter Property="{Binding ElementName=localItem, Path=Background}"> 
            <Setter.Value> 
             <Color R="0" G="0" B="0" /> 
            </Setter.Value> 
           </Setter> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
       </ListBox.Style--> 
      </ListBox> 
     </TreeViewItem> 
    </TreeView> 

回答

0

你可以設置你的ListBox的VisibilityCollapsed,使其不會出現在你的TreeView

+0

沒有,一個TreeViewItem如之前已離開橫膨脹 – psct

0

看起來你已經在做與計數類似的東西。

  <TreeViewItem x:Name="B" Header="Header with empty list"> 
      <ListBox x:Name="localContent" ItemsSource="{Binding listContent}"> 
       <ListBox.Style> 
        <Style TargetType="ListBox"> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding listContent.Count}" Value="0"> 
           <Setter Property="Visiblity" Value="Hidden" /> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
       </ListBox.Style> 
      </ListBox> 
     </TreeViewItem> 
+0

沒有,一個TreeViewItem如之前已經離開橫膨脹 – psct

0

實現所期望的行爲通過下列觸發器(添加它的任何控件):

<Style.Triggers> 
      <DataTrigger Binding="{Binding Count, Converter={StaticResource int2bool}}" Value="False"> 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate> 
          <StackPanel Orientation="Horizontal"> 
           <Expander Visibility="Hidden" /> 
           <TextBlock Text="list is empty" /> 
          </StackPanel> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Count, Converter={StaticResource int2bool}}" Value="True" > 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate> 
          <Expander Header="{Binding}"> 
           <Expander.Content> 
            <ListBox ItemsSource="{Binding}" /> 
           </Expander.Content> 
          </Expander> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
      </DataTrigger> 
     </Style.Triggers>