2013-11-11 5 views
0

Я изучаю WPF с использованием шаблона MVVM, который идет хорошо в целом, однако у меня есть одна проблема с включенным/отключенным состоянием некоторых кнопок.Состояние включенной кнопки WPF MVVM

У меня есть 3 кнопки которых IsEnabled государство должно следовать этим:

App Startup: enabled | disabled | disabled 
Click first: disabled | enabled | disabled 
Click second: enabled | disabled | enabled 
Click third: enabled | disabled | enabled 

Все кнопки имеют отдельную команду, прикрепленную к ним, так что я знаю, когда они нажимали. Однако я не уверен, как передать взаимодействие обратно в окно, чтобы установить состояние IsEnabled других элементов управления кнопки.

Я знаю, как это сделать с событиями и кодом, но я стараюсь, чтобы это было как можно ближе к чистому MVVM. Я также знаю, что у меня могут быть некоторые свойства на моей модели ViewModel, которые могут быть привязаны к свойству IsEnabled кнопок, но для меня это кажется немного нелепым (но я мог ошибаться!).

Может кто-нибудь, пожалуйста, дайте мне несколько советов, как достичь этого?

Благодаря

ответ

1

Вы хотите использовать привязку данных здесь, так логические свойства на модели представления, которые изменяются, когда команды вызываются и к которому ваши кнопки связать их IsEnabled свойство, декларативно в XAML.

Это позволяет легко протестировать логику, независимо от вида. Вы можете создать экземпляр модели своего вида, вызвать соответствующий метод в модели представления, а затем проверить соответствующие логические свойства.

Возможно, вы также захотите рассмотреть вопрос об MVVM framework, так как у команды есть ограничения.

+0

Это было одно из моих решений, но для меня это было не очень элегантно, поэтому я подумал, что может быть лучший способ сделать это, однако ваше предложение работает хорошо. Что касается рамки, я знаю, что мне нужно изучить ее, но это будет зависеть от того, что моя работа выбирает, поэтому я просто работаю с основами на данный момент. – XN16

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