2013-10-15 52 views
0

我今天嘗試了這個示例=>http://weblogs.asp.net/psteele/archive/2011/05/31/wpf-simple-busy-overlay.aspx,在我的窗口中顯示簡單覆蓋,以顯示用戶正在執行他的操作。 但我有一個小問題。在我執行動作的函數中,我將IsBusy屬性開頭切換爲true,最後切換爲false。但gui不更新,我看不到覆蓋。我嘗試了一個額外的按鈕來切換覆蓋,它的工作原理。WPF覆蓋示例,綁定不能正常工作

有人知道爲什麼我有這個問題嗎?我認爲這與綁定操作的優先級有關,但我完全不知道。

回答

1

沒有看到任何自己的代碼...

有沒有可能是操作切換IsBusy屬性發生的UI /主線程?所以,UI設置實際上沒有機會在你設置屬性true然後回到false之間「刷新」自己?

如果你只有只有設置IsBusy = true但不能回覆爲false,是否顯示覆蓋層?如果是,那麼這可能是發生了什麼;您需要在不同的線程上調用該方法,以便UI可以更新。

1

您的IsBusy屬性需要依賴屬性或實現INotifyPropertyChanged接口以使UI識別其更改。否則,用戶界面不會知道您設置了屬性,因此不會顯示疊加層。

由於未知的原因,這不是在你的例子的example source,所以它不應該在那裏工作。總之,您基本上想在設置IsBusy屬性後提高PropertyChanged事件。