2016-09-18 12 views
0

列をツリービューで表示する正しい方法は、幅をコンテンツの幅に自動的に揃えることです。 私が見ている問題は、各TreeViewItemは独立しているため、どのTreeViewItemの日付列にも同じ幅がありますが、最も広い日付文字列を持つTreeViewItemに依存していることを伝える方法はわかりませんか?WPF TreeView複数の項目にまたがる「autowidth」?

<TreeView Name="treeView" TreeViewItem.Expanded="TreeViewItem_Expanded" AutomationProperties.IsColumnHeader="True" AutomationProperties.IsRowHeader="True" AllowDrop="True" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"> 

    <TreeViewItem> 
     <TreeViewItem.Header> 
     <Grid> 
      <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="auto" /> 
      </Grid.ColumnDefinitions> 
      <Label>2.3.00</Label> 
      <Label Grid.Column="2">Something</Label> 
     </Grid> 
     </TreeViewItem.Header> 
    </TreeViewItem> 

    <TreeViewItem> 
     <TreeViewItem.Header> 
     <Grid> 
      <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="auto" /> 
      </Grid.ColumnDefinitions> 
      <Label>22.03.2000</Label> 
      <Label Grid.Column="2">Something 2</Label> 
     </Grid> 
     </TreeViewItem.Header> 
    </TreeViewItem> 
    </TreeView> 

答えて

2

TreeViewで属性Grid.IsSharedSizeScope="True"と列の定義

SharedSizeGroup="A" SharedSizeGroup

<TreeView Name="treeView" Grid.IsSharedSizeScope="True" TreeViewItem.Expanded="TreeViewItem_Expanded" AutomationProperties.IsColumnHeader="True" AutomationProperties.IsRowHeader="True" AllowDrop="True" VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"> 

    <TreeViewItem> 
    <TreeViewItem.Header> 
     <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" SharedSizeGroup="A" /> 
      <ColumnDefinition Width="auto" SharedSizeGroup="B" /> 
     </Grid.ColumnDefinitions> 
     <Label>2.3.00</Label> 
     <Label Grid.Column="2">Something</Label> 
     </Grid> 
    </TreeViewItem.Header> 
    </TreeViewItem> 

    <TreeViewItem> 
    <TreeViewItem.Header> 
     <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" SharedSizeGroup="A" /> 
      <ColumnDefinition Width="auto" SharedSizeGroup="B" /> 
     </Grid.ColumnDefinitions> 
     <Label>22.03.2000</Label> 
     <Label Grid.Column="2">Something 2</Label> 
     </Grid> 
    </TreeViewItem.Header> 
    </TreeViewItem> 
</TreeView> 

注意を使用します

関連する問題