2012-09-26 48 views
0

我有一個列表框,其中的項目是水平構建的。DataGrid列寬同步

另外我有一個DataGrid,其列是動態構建的。

每個ListBoxItem的被coresponding到DataGrid列

我想數據網格列和右ListBoxItem的間同步,所以每個ListBoxItem的將平行於一列。此外,在調整列的大小時,它將更改ListBoxItem的大小。 我該怎麼做?

回答

2

您可以到DataGrid的列項寬度結合ActualWidth的

 <StackPanel Grid.Column="1" Orientation="Vertical"> 
      <DataGrid Grid.IsSharedSizeScope="True"> 
       <DataGrid.Columns> 
        <DataGridTextColumn Header="Some col 1" x:Name="first" /> 
        <DataGridTextColumn Header="Some col 2" x:Name="second" /> 
        <DataGridTextColumn Header="Some col 3" /> 
       </DataGrid.Columns> 

      </DataGrid> 

      <ListBox> 
       <ListBox.ItemsPanel> 
        <ItemsPanelTemplate> 
         <StackPanel IsItemsHost="True" Orientation="Horizontal" /> 
        </ItemsPanelTemplate> 
       </ListBox.ItemsPanel> 
       <Button Content="button 1" Width="{Binding Path=ActualWidth, ElementName=first}"></Button> 
       <Button Content="button 2" Width="{Binding Path=ActualWidth, ElementName=second}"></Button> 
      </ListBox> 
     </StackPanel> 

如果你創建它們動態,在代碼中設置綁定。