2010-03-29 55 views
0

該場景是:在我的窗口中,我有一個TreeView;其中的每一項表示不同的用戶定義類型。所以我爲每種類型定義了DataTemplate。這些DataTemplates正在使用用戶控件,這些用戶控件綁定了用戶定義類型的屬性。很簡單,TreeView映射用戶定義類型的分層數據結構。Wpf:樹視圖更新或數據模板應用事件

現在我從XML讀取並創建Hierarchical結構並將其分配給TreeView,並且需要大量時間來加載。它已經有了一些默認節點,併爲其他節點自行更新。

我想顯示一個等待光標,直到它被加載並可供用戶使用,但我沒有收到任何事件來通知我這一點。有沒有這樣的事件?我還可以做些什麼?

+0

你確定這是該走的是一條很長一段時間的數據模板的應用程序?看起來更可能是XML和對象創建的加載和解析。您當然可以監視這些操作的狀態。 – Jay 2010-03-29 11:43:17

+0

@Jay我寫的邏輯並沒有花費太多時間,在完成我的邏輯運行後,需要20-30秒才能看到。 所以,我希望它是應用樹視圖加載和數據模板,需要時間(邏輯從框架方面) – viky 2010-03-29 11:46:41

+0

20-30秒是一個非常長的時間;我想知道這個層次結構包含多少個項目?你能夠創建綁定,然後*添加項目到層次結構(在後臺線程中,甚至是),還是需要在顯示任何內容之前創建整個圖形? – Jay 2010-03-29 12:41:46

回答

0

嘗試LayoutUpdated事件,如...

Mouse.OverrideCursor = Cursors.Wait; 
treeView.LayoutUpdated += treeView_LayoutUpdated; 

void treeView_LayoutUpdated(object sender, EventArgs e) 
{ 
    Mouse.OverrideCursor = null; 
    treeView.LayoutUpdated -= treeView_LayoutUpdated; 
}