0

Microsoft Surfaceアプリケーションを実行していますが、次の問題があります。

MVVMパターンを使用しています。ユーザーが自分のIDカード(タグが付いている)を表面に置くと、このユーザーは「現在のユーザー」として設定されます。ボタンを押すと、ユーザーは自分の住所やその他のものを編集できます。次に、「保存」ボタンと「終了」ボタンが表示されます。これらのボタンには、データベースに変更を保存したり、変更を破棄したりするためのRelayCommandsがあります。したがって、これらのボタンが最初に表示されたときは非アクティブであり、ボタンコマンドのCommandParameterである「現在のユーザー」は現時点ではまだnullであるため、クリックすることはできません。しばらくして、アプリケーションが「現在のユーザー」がnullではなくなったことを認識すると、ボタンは非アクティブのままですが、アプリケーションをしばらく離れて(キーボードのMicrosoftボタンを使用する場合のように)アプリケーションに戻ると、ボタンがアクティブになっていることがわかります。したがって、UserControlを「更新」する可能性が必要だと思います。

どうすればいいですか?

4

1 に答える 1

1

「現在のユーザー」が値を変更したとき(通常はセッターで)、コマンドで「CanExecute」の評価を強制する必要があると思います。ICommand の実装に応じて、CanExecute ステータスの再評価を要求するメソッドまたはイベントが必要です。

HTH

于 2010-05-31T09:25:59.753 に答える