2010-05-31 6 views
0

Я делаю Поверхностное приложение Microsoft и у меня есть эта проблема:WPF: Обновление UserControls после изменения

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

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

ответ

1

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

HTH

+0

Да, это должно быть нечто похожее; e.CanExecute = CurrentUser! = Null; – Faisal

+0

Кажется работать. Благодаря! – sofri

Смежные вопросы