2012-09-26 7 views
0

항목이 가로로 구성되어있는 목록 상자가 있습니다.DataGrid 열 너비 동기화

또한 열이 동적으로 작성되는 DataGrid가 있습니다.

ListBoxItem의 각각은 I의 데이터 그리드의 칼럼 오른쪽 ListBoxItem의 사이에 동기화 할 데이터 그리드의 칼럼

로 풀어서되므로 ListBoxItem의 각 컬럼에 평행 할 것이다. 또한 열 크기를 조정할 때 ListBoxItem의 크기가 변경됩니다. 어떻게 할 수 있습니까?

답변

2

당신은 당신이 동적으로 생성 코드에서 바인딩을 설정하면

 <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> 

actualwidth DataGrid를 컬럼으로 항목 폭을 바인딩 할 수 있습니다.