2011-09-23 181 views
1

我有一個包含10個DataGridTemplateColumns的DataGrid的WPF應用程序。當我將一組對象綁定到數據網格時,它們都可以在網格中正常顯示。唯一的問題是,如果我有更多的行比沒有滾動條的屏幕適合,那麼這些列只會自動調整大小以適應屏幕上的值。例如,如果我向下滾動並來到第1列的值不適合的行,則第1列將自動調整大小以適應它。這真的很煩人。無論它們是否最初在屏幕上,是否沒有辦法讓它自動適應集合中的所有項目?我試過將每列的寬度屬性設置爲自動,但沒有做任何事情。在此先感謝您的幫助DataGridTemplateColumn調整大小

+0

你可以發佈你的DataGrid的XAML嗎?我有一些想法......但是當我試圖創造出能夠再現您的問題的東西時......我無法做到。編輯:無所謂...我找到了一種方法來重現它。 – Scott

回答

1

問題是由於datagrid中的行正在被虛擬化而引起的。因此,屏幕上未顯示的項目不需要繪製(或計算其大小),直到需要顯示它們。

你可以把虛擬化掉,像這樣:

<DataGrid VirtualizingStackPanel.IsVirtualizing="False" HorizontalScrollBarVisibility="Hidden"> 

但是請注意,這樣做可能會導致你的DataGrid,如果你有很多的項目加載速度較慢,由於事實,即所有項目將「即使沒有顯示在屏幕上。

+0

這確實解決了我的問題,但是你放慢速度是正確的。它會減慢它的速度,所以它不是真的可用。謝謝你的幫助 –