2011-10-08 57 views
3

我有DataGrid和我做這樣的事情:WPF Datagrid:Loading_Completed事件?

Me.Cursor = Wait 
Datagrid.ItemsSource = GetData() 
Me.Cursor = Nothing 

的問題是,有設置.ItemsSource當行實際呈現的那一刻之間的(相對)大的延遲。所以我的光標很早就重置爲正常。

當Datagrid完成加載/渲染數據時,是否會引發某種事件?我知道有一個_LoadingRow事件,但它在數據加載期間觸發,而不是在加載完成時觸發?

回答

0

你可以看看BeginInit在()和EndInit()方法

2

我有同樣的問題(看here),和我解決它通過把這個代碼,我改變了的ItemsSource後:

Dispatcher.InvokeAsync(() => { System.Windows.Input.Mouse.OverrideCursor = null; }, 
     DispatcherPriority.ApplicationIdle); 

它基本上等待應用程序變爲空閒狀態,然後再將光標變回默認狀態。使用FrameworkElement.Loaded事件是不夠的,因爲當我對ItemsSource進行更改時,只有在第一次加載數據網格時纔會引發該事件。