2010-05-31 156 views
0

我正在做一個Microsoft Surface應用程序,我有這個問題:WPF:更新後刷新UserControls

我使用MVVM模式。當用戶將他的ID卡(帶有標籤)放在表面上時,該用戶被設置爲「當前用戶」。當按下按鈕時,用戶可以編輯他的地址和其他東西。然後他會顯示一個「保存」按鈕和一個「退出」按鈕。在這些按鈕上有RelayCommands用於保存數據庫中的更改或放棄更改。 因此,當這些按鈕首先顯示時,它們處於非活動狀態,您無法單擊它們,因爲此時按鈕命令的CommandParameter的「當前用戶」仍然爲空。過了一會兒,當應用程序認識到「當前用戶」不再爲空時,按鈕保持不活動狀態,但當您離開應用程序片刻並返回時(例如使用鍵盤上的微軟按鈕),您可以看到該按鈕處於活動狀態。 所以我想我需要一種可能性來「刷新」UserControls。

我該怎麼辦?

回答

1

我認爲當「當前用戶」更改值(通常在setter上)時,您應該在命令上強制執行「CanExecute」的評估。 取決於您實施ICommand的方式,您應該有方法或事件要求重新評估CanExecute狀態。

HTH

+0

是的,它應該是類似的東西; e.CanExecute = CurrentUser!= null; – Faisal 2010-05-31 09:40:41

+0

似乎工作。謝謝! – sofri 2010-05-31 09:52:52