2011-03-07 74 views
0

基本上我有一個標準的WPF UI,它有列表框,複選框,列表視圖等,但當我更改它們時,需要一段時間才能顯示更改。例如,假設我刷新了綁定,UI顯示不會立即更新。大約需要花一秒鐘左右的時間才能顯示覆選框被選中或未選中。如何關閉WPF中UI更改的逐步更新?

這是可以關閉的設置嗎?

還是這是因爲Windows 7 Aero的東西?我使用Visual Studio 2010,但它似乎沒有像那樣的行爲,即使這也是WPF。

任何想法?

+0

老實說,它應該立即更新。屏幕掛在更新之間(是否佔用CPU週期)?當你更新其中一個值時,你是否適當地調用了你的「RaisePropertyChanged()」函數? – JoeCool 2011-03-07 22:29:26

+0

這不是說應用程序似乎掛起,但用戶界面的變化看起來像是一個圖像緩慢的視覺轉換到另一個。 – 2011-03-07 22:40:47

+0

什麼操作系統和主題?而當你說一秒鐘左右,你的意思是字面上的第二?一秒鐘,我可以理解,但不是第二。 – 2011-03-07 23:10:41

回答

1

這聽起來好像你只是不滿意你的系統主題的過渡。您可以使用force a different system theme或使用您自己的設置覆蓋默認樣式。

+0

謝謝,這可能是它。這只是過渡效果本身不是非常直接的。否則,該應用程序是響應。 – 2011-03-08 18:06:13

1

你說刷新綁定。你是否使用INotifyPropertyChanged綁定到Properties?這個工作最快,因爲只有已更改的項目纔會更新。

+0

是的,但是當我需要刷新整個UI時,因爲UI綁定的集合必須更改,所以我更新了所有集合。但無論是哪種方式,無論是單個檢查/取消選中還是整個更新,時間都是一樣的。就像我說的那樣,它看起來像一個平穩的過渡,而不是一個應用程序掛斷。 – 2011-03-07 23:54:27

+0

您也可以使用INotifyCollectionChanged。這將讓UI知道個人價值何時改變而不是回憶整個收藏。這是在使用ObservableCollections時內置的。 – Eric 2011-03-08 01:54:13

+0

謝謝我這樣做,但用戶界面中的所有值都是由我從文件中讀取和解釋的值驅動的,當用戶選擇一個新文件時,則必須「重新加載」所有內容。 – 2011-03-08 18:05:21