-1
我有一個從代碼生成的DataGrid
。使用星號大小的列自動調整數據網格的大小
DataGrid dataGrid = new DataGrid();
dataGrid.AutoGeneratedColumns = false;
for (int i = 0; i < 3; i++) // Add some columns
{
DataGridBoundColumn column = new DataGridTextColumn();
column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
column.Header = String.Format("Hello World {0}!", i);
dataGrid.Columns.Add(column);
}
return dataGrid;
這導致的寬度Double.NaN
,這是我想要的一個DataGrid
,它具有3列,就像我想,但是,列不正確的大小。他們每個佔用儘可能小的空間,而不是填充DataGrid
的整個空間。
當我手動設置DataGrid
的寬度時,列的行爲應該像填充整個寬度一樣,並且每個列的寬度都相等。
下面是一張錯誤DataGrid
的圖片。
+1:這是至少朝正確方向邁出的一步。我將每列的寬度更新爲'col.Width = new DataGridLength(1,DataGridLengthUnitType.Star);',但正如您所說的那樣,它們似乎不會隨着DataGrid的大小調整而更新。 – 2014-11-03 18:00:22
您可以嘗試在更新之前使用'ClearValue'清除每列的寬度。如果你再次設置它,但寬度*已經* 1 *',那麼它不會被視爲一個改變。再次查看源代碼,似乎更改列寬應導致重新計算「實際」寬度。 – 2014-11-03 18:02:06
實際上,在'Loaded'事件中,每列的寬度都是'Auto',我把早先的寬度設置器註釋掉了。 – 2014-11-03 18:05:44