Tôi cần bảng có cả tiêu đề ngang và dọc (đơn giản PivotGrid). Tôi đã tìm thấy một số vấn đề tương tự (hoặc gần như giống nhau) ở đây, nhưng không ai đưa ra giải pháp. Trong XAML Tôi đã xác định cấu trúc này: (. Resp RowDefinitions)Lưới SharedSizeGroup - cột đang nảy, thay đổi kích thước trong vòng lặp vô hạn
<Grid x:Name="grdMain" Background="White" Grid.IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Grid.Column="1" x:Name="grdHorizontalHeader">
<!-- place for column definitions and header labels defined in code -->
</Grid>
<Grid Grid.Row="1" Grid.Column="0" x:Name="grdVerticalHeader">
<!-- place for column definitions and header labels defined in code -->
</Grid>
<Grid Grid.Row="1" Grid.Column="1" x:Name="grdContent">
<!-- place for column definitions and header labels defined in code -->
</Grid>
</Grid>
Vì vậy, cả hai tiêu đề bao gồm lưới với một số ColumnDefinitions và tôi cần phải kích thước header-ColumnDefinitions theo Content-ColumnDefinitions. Tôi làm điều đó trong mã:
foreach (var row in myColumnSource)
{
// Content columns definitions
var cD = new ColumnDefinition();
cD.Width = GridLength.Auto;
cD.SharedSizeGroup = "ColumnSharedSizeGroup" + row.Value;
this.grdContent.ColumnDefinitions.Add(cD);
// Header columns definitions
var cD2 = new ColumnDefinition();
cD2.Width = GridLength.Auto;
cD2.SharedSizeGroup = "ColumnSharedSizeGroup" + row.Value;
this.grdHorizontalHeader.ColumnDefinitions.Add(cD2);
...
Vì vậy, tiêu đề cột nên chia sẻ chiều rộng của nó với cột nội dung. Nhưng khi tôi chạy chương trình, các cột được bouncing và thay đổi kích thước trong vòng lặp vô hạn. Chia sẻ chiều cao của Row hoạt động tốt. Trường hợp có thể là vấn đề?
CHỈNH SỬA chỉ các cột trong tiêu đề (grdHorizontalHeader) mới thay đổi kích thước. Cột trong grdContent có chiều rộng chính xác và ổn định.
Khi tôi xóa đoạn mã '+ row.Value', nó cũng hoạt động tốt. Nhưng tôi cần mỗi cột có kích thước cá nhân. – karel
Khi tôi không sử dụng GridLength.Auto, sau đó nó hoạt động tốt. Nó xuất hiện, rằng autosize này là nguồn gốc của các vấn đề. – karel