WPF: обновление пользовательских элементов управления после изменений - PullRequest
0 голосов
/ 31 мая 2010

Я делаю приложение Microsoft Surface, и у меня есть эта проблема:

Я использую MVVM-шаблон. Когда пользователь помещает свою ID-карту (с ярлыком на нее) на поверхность, этот пользователь считается «текущим пользователем». При нажатии на кнопку пользователь может редактировать свой адрес и другие вещи. Затем ему показывают кнопку «сохранить» и кнопку «выход». На этих кнопках есть RelayCommands, чтобы сохранить изменения в базе данных или отменить изменения. Таким образом, когда эти кнопки отображаются первыми, они неактивны, и вы не можете щелкать по ним, потому что «текущий пользователь», который является CommandParameter для команд-кнопок, все еще является нулевым в это время. Мгновение спустя, когда приложение распознает, что «текущий пользователь» больше не является нулевым, кнопка остается неактивной, но когда вы на мгновение выходите из приложения и возвращаетесь к нему (как при использовании кнопки microsoft на клавиатуре), вы можете увидеть что кнопка активна тогда. Поэтому я думаю, что мне нужна возможность «обновить» пользовательские элементы управления.

Как я могу это сделать?

1 Ответ

1 голос
/ 31 мая 2010

Я думаю, что вы должны форсировать оценку «CanExecute» в командах, когда «Текущий пользователь» изменяет значение (обычно в сеттере) В зависимости от вашей реализации ICommand у вас должен быть метод или событие, чтобы запросить переоценку статуса CanExecute.

НТН

...