Command и нажмите на тот же элемент управления

При нажатии на Button в моем View я вызываю RelayCommand из ViewModel. Однако я также хочу сделать Stackpanel видимым с помощью Click на этой кнопке.

Я попытался связать Relaycomman и создать метод Click для кнопки, но это не сработало. Это также казалось довольно уродливым способом сделать это, но если бы он работал, это разделило бы мое представление и модель представления.

Как я могу взаимодействовать с моим представлением перед вызовом RelayCommand, так как я хочу, чтобы мое представление и модель представления были как можно более разделены.


person Community    schedule 08.11.2014    source источник


Ответы (2)


Мой RelayCommand действительно сработал после того, как метод Click был привязан к тому же элементу управления. Тогда вроде работает отлично..

Я по-прежнему открыт для новых предложений, если есть лучший способ взаимодействия с элементом управления представлением.

person Community    schedule 08.11.2014
comment
Я предпочитаю управлять видимостью определенных элементов управления представлением с помощью определенных свойств в модели представления, таких как ShowLoginButton. Затем все, что должно сделать представление, — это привязаться к этому свойству с помощью BooleanToVisibilityConverter. Затем полная логика приложения о том, что показывать, когда реализуется моделью представления. - person Torger Tokle; 08.11.2014

Вы должны просто добавить свойство bool в свою ViewModel (например, IsMyPanelVisible). Visibility вашего StackPanel привязано к этому свойству, и в методе команды Execute вы устанавливаете значение свойства на все, что вам нужно.

На мой взгляд, это самый простой и чистый подход.

person dan    schedule 09.11.2014