2011-11-16 159 views
0

當我在Datagrid上設置.ItemSource()時,調用幾乎立即返回,但在渲染實際行之前存在大的延遲。這是非常明顯的,我不知道爲什麼會發生這種情況,因爲所有其他渲染操作都會立即發生。例如,滾動速度非常快,刪除/重新排序列可立即呈現。所以這個延遲只發生在設置一個新的.ItemsSource時。 datagrid沒有自定義樣式/觸發器/模板,所以我不明白爲什麼渲染需要這麼長時間。如果我將窗口大小調整爲很小,延遲就會消失,所以不是綁定本身很慢。ItemsSource渲染延遲

+0

您是否設法解決此問題? –

+0

@RobotMess是的,在某種程度上,但我不記得如何。我相信這與使用.DataSource()而不是.ItemSource()有關,但我不確定。 – Muis

回答

0

這取決於幾個原因:你的DataSource有多快,它有多少行,最重要的一個:你在DataGrid中使用分組嗎?如果是這樣,那麼DataGrid控件中存在一個已知的錯誤,當它必須處理大量數據和分組時,會使其顯着變慢。

+0

我沒有使用分組,我將調試語句放在我綁定的對象的屬性中,並且在設置ItemsSource之後立即打印它們,渲染沒有結束,直到很久以後,所以似乎證實它不是綁定是慢的。 – Muis

+0

渲染複雜(大數據模板,長動畫,大圖片,顏色漸變,a.s.o.) – Fischermaen

+0

不,它只是簡單的標準數據網格,沒有任何自定義。 – Muis