У меня возникли проблемы с шаблоном MVVM и командами в моем приложении WPF. Проблема заключается не столько в шаблоне MVVM, сколько в том, что происходит в моем графическом интерфейсе. Я объясню ситуацию:Как применить MVVM и команды в этой конкретной ситуации WPF?
Мое приложение может использовать DoStuff для некоторых файлов. У меня есть класс с функцией DoStuff(int limit)
. Мой пользователь пользовательский интерфейс имеет следующие пункты:
Button
DoStuffBtn
начать разбор.- A
TextBox
LimitTxt
для заполнения лимита. - A
CheckBox
LimitChk
для включения или выключения ограничения.
Когда вы "снимите флажок" LimitChk
, затем LimitTxt.Text = ""
и LimitTxt.IsEnabled = false
. Когда вы «проверите» LimitChk
, затем LimitTxt.IsEnabled = false
, но текст останется пустым, пока вы не заполните что-то.
Я прочитал много руководств по командам в WPF и MVVM, но я просто не могу полить свое дело в это плесень. Пример, который я дал, на самом деле является лишь небольшой частью моего пользовательского интерфейса, но я тоже не могу это сделать.
я продолжать работать в такие вопросы, как:
- Мне нужно два
Commands
дляLimitChk
(включения и выключения) или только один (тумблер) ли? - Если я привяжу
int
кLimitTxt
, что произойдет, если я сделаю его пустым и отключит его? - Это чистый способ просто использовать
DoStuff(Int32.Parse(LimitTxt.Text))
при нажатииDoStuffBtn
? - Если я использую две команды на
LimitChk
, что происходит с функциейCanExecute()
отICommand
, которая определяет, включено лиLimitChk
?
Итак, главный вопрос: как бы ситуация, о которой я описал, вписывалась в хороший шаблон с использованием команд в WPF?
Некоторые ссылки на WPF, Команды и MVVM Я посмотрел на:
- http://www.devx.com/DevX/Article/37893/0/page/1
- http://msdn.microsoft.com/en-us/magazine/cc785480.aspx?pr=blog
- http://jmorrill.hjtcentral.com/Home/tabid/428/EntryId/432/MVVM-for-Tarded-Folks-Like-Me-or-MVVM-and-What-it-Means-to-Me.aspx
- http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
Wha Понимаю до сих пор, что я должен как можно больше убираться из пользовательского интерфейса. Даже такие вещи, как пользовательский интерфейс, влияют на пользовательский интерфейс. То есть снятие отметки LimitChk
отключает LimitText
. Тем не менее, я думаю, что я должен держать разницу между информацией и действиями, связанными с пользовательским интерфейсом, и тем, что на самом деле связано с фактической работой, которая должна быть выполнена.
lol at jmorrill's tarded people like me post – kenwarner