只讀列的Datagrid在數據字段綁定到更改時被調整大小。防止WPF Datagrid列調整大小
最初它顯示寬度約爲100px,但由於外部數據源的更改導致它的大小調整爲150px。
即使列內顯示的數據發生變化,我想確保數據列的寬度不會改變。
設置MaxWidth修復了這個問題,但它阻止了用戶手動調整列的大小,這是不可接受的。
只讀列的Datagrid在數據字段綁定到更改時被調整大小。防止WPF Datagrid列調整大小
最初它顯示寬度約爲100px,但由於外部數據源的更改導致它的大小調整爲150px。
即使列內顯示的數據發生變化,我想確保數據列的寬度不會改變。
設置MaxWidth修復了這個問題,但它阻止了用戶手動調整列的大小,這是不可接受的。
您可以使用AutoGeneratingColumn事件並在其中處理寬度。
在XAML:
<DataGrid AutoGeneratingColumn="DataGrid_AutoGeneratingColumn"/>
在後面的代碼:
private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
e.Column.Width = new DataGridLength(100);
}
這將從根本上限制列大小正在發生時,他們卻仍然允許一旦被安裝在用戶重新大小他們。
列不是自動生成的。這隻有在列自動生成時纔有效。 –
以爲他們是 - 看看0xBADF00D的回答 – kskyriacou
如果不自動生成像kyriacos_k的answere列,你可以簡單地設置列的寬度和數據網格本身的CanUserResizeColumns屬性:
<DataGrid ItemsSource="{Binding YourSource}"
CanUserResizeColumns="True"
EnableRowVirtualization="True">
<DataGrid.Columns>
<DataGridTextColumn Width="100" Header="CustomHeader" Binding="{Binding YourProperty, Mode=OneWay}" />
<DataGrid.Columns>
</DataGrid>
我要最後用從溶液中去這裏 - http://stackoverflow.com/questions/4997596/how-can-i-set-the-width-of-a-datagridcolumn-to-fit-contents-auto-but-comple –