我正在使用Microsoft Surface应用程序,我遇到了这个问题:
我使用MVVM模式。当用户将其ID卡(带有标签)放在表面上时,该用户被设置为“当前用户”。当按下按钮时,用户可以编辑他的地址和其他内容。然后他会出现一个“保存”按钮和一个“退出”按钮。在这些按钮上有RelayCommands,用于保存数据库中的更改或放弃更改。 因此,当首先显示这些按钮时,它们处于非活动状态,您无法单击它们,因为此时按钮命令的CommandParameter的“当前用户”仍为空。片刻之后,当应用程序识别出“当前用户”不再为空时,该按钮保持不活动状态,但是当您离开应用程序片刻并返回该应用程序时(如使用键盘上的微软按钮),您可以看到然后按钮处于活动状态。 所以我认为我需要“刷新”UserControls。
我该怎么办?
答案 0 :(得分:1)
我认为当“当前用户”更改值(通常在setter上)时,您应该强制在命令上评估“CanExecute”。 取决于您对ICommand的实施,您应该有一个方法或事件要求重新评估CanExecute状态。
HTH