2009-05-05 47 views
13

當我在我的樹視圖上選擇一個項目時,從我的viewmodel類實例化到視圖刷新和樹視圖節點處於高亮狀態之間存在顯着的時間間隔。如何檢測在WPF中完成的數據綁定

我需要在這段時間顯示一個等待光標 - 我試過包裝實例化我的viewmodel類的代碼,但光標在整個數據綁定似乎完成前幾秒鐘回到一個箭頭,節點獲得高亮度。是否有某個事件告訴我綁定何時完成,或節點是否高亮?

這與擴展節點無關,只需選擇頂級節點即可。

感謝您的任何幫助。

回答

8

在所有綁定設置完成後,所需TreeView控件上的Loaded事件將發生。我認爲這是在繪製所有東西之前發生的,所以它可能並不是你所需要的。

+1

絕對同意,請參閱http://blogs.msdn.com/b/mikehillberg/archive/2006/09/19/loadedvsinitialized.aspx – Artru 2015-03-11 11:59:05

1

發生這種差距時是否存在「掛起」?也許你需要把沉重的邏輯放在一個單獨的線程上,或者簡單地使用Binding類的IsAsync屬性。 您可能還想看看優先綁定。 Here是一篇關於如何使用它的不錯文章。

0

您可以重寫OnContentRendered for Window控件。

7

您可以在目標或源更新時得到通知。

<TreeViewItem> 
    <TextBlock Name="NameText" 
     Text="{Binding Path=Name, Mode=OneWay, NotifyOnTargetUpdated=True}" 
     TargetUpdated="OnTargetUpdated"/> 
</TreeViewItem>