1
DataGrid의 행 표현이 아닌 열의 데이터를 시각적으로 나타내려고합니다. 내 데이터를 List<Column>
으로 생각할 수 있습니다. 여기에서 한 열에는 List<Cell>
이 포함되어 있습니다. 데이터를 조 변경하지 않고 DataGrid를 사용하는 이유는 모든 데이터를 처리 할 필요없이 동적으로 열을 추가/제거 할 수 있기를 원하기 때문입니다.사용자 지정 wpf 데이터 격자의 행 높이 동기화
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Vertical" VerticalAlignment="Top">
<TextBox Text="" IsReadOnly="True" BorderThickness="0" HorizontalAlignment="Stretch"/>
<TextBox Text="" IsReadOnly="True" BorderThickness="0,0,0,2" BorderBrush="Black" HorizontalAlignment="Stretch"/>
<ItemsControl ItemsSource="{Binding RowHeaders}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding Mode=OneWay}" IsReadOnly="True" BorderThickness="0,0,2,2" BorderBrush="Black" FontWeight="Bold" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
<ItemsControl ItemsSource="{Binding Columns}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" >
<TextBox Text="{Binding ColHead1, Mode=OneWay}" IsReadOnly="True" BorderThickness="0" FontWeight="Bold" HorizontalAlignment="Stretch"/>
<TextBox Text="{Binding ColHead2, Mode=OneWay}" IsReadOnly="True" FontWeight="Bold" BorderThickness="0,0,0,2" BorderBrush="Black" HorizontalAlignment="Stretch"/>
<ItemsControl ItemsSource="{Binding Cells}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox x:Name="textBox" Text="{Binding}" IsReadOnly="{Binding IsReadOnly}" BorderThickness="0,0,0,2" BorderBrush="Black" HorizontalAlignment="Stretch"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
, 어떻게 내 행이 항상 정렬되었는지도 확인 할 수 있습니다
+--------------------------------------------+
| | Col Header | Col Header | ... |
| Row Header | Cell | Cell | ... |
| ... | ... | ... | ... |
+--------------------------------------------+
나는 거의 내가 원하는 무엇 XAML의 샘플을 가지고? 열 내의 셀은 단일 ItemsControl 내에 포함되어 있기 때문에 정렬되도록 보장됩니다. 그러나 각 열은 자체 StackPanel 안에 있습니다. 모든 행이 정렬되도록하는 방법이 있습니까?
또한 문제 해결을위한 좋은 해결책 인 것처럼 보이거나 더 나은 대안이 있습니까?
뿐만 아니라 행을 사용할 수없는 이유가 (없다 HTTP : //msdn.microsoft.com/en-us/library/system.windows.controls.grid.issharedsizescope.aspx) 행을 크기를 공유 할 수 있습니다. 과거에는 열을 사용했지만 그 행에도 사용할 수 없습니다. – Rachel
@Rachel 이것은 실제로 도움이되었습니다. 내가 그것을 받아 들일 수 있도록 대답으로 추가하십시오. 감사. – Rado
완료, 감사합니다 :) – Rachel