2010-05-31 160 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