Открыть вид по нажатию кнопки MVVM - PullRequest
0 голосов
/ 30 октября 2011

Я знаю, что уже есть несколько подобных вопросов, но я не могу решить, что делать, у меня есть кнопка, которую я хочу открыть в новом окне, есть ли способ сделать это в чистом xaml? Я не вижу, как я могу открыть диалоговое окно, не вызывая его из моего CodeBehind или ViewModel. Для этого я не использую mvvm-инструментарий.

Ответы [ 2 ]

4 голосов
/ 30 октября 2011

Я не вижу, как я могу открыть диалоговое окно, не вызывая его из моего CodeBehind или ViewModel.

Как правило, вы делаете это в коде - но большинство сред MVVM предоставляютспособ абстрагировать это.

Обычно это обрабатывается с помощью какой-либо формы расположения службы (т. е. путем внедрения ViewService или подобного) во ViewModel.Другим вариантом является использование какой-либо формы обмена сообщениями, которая является подходом MVVM Light.

Преимущество этих подходов состоит в том, что виртуальная машина может быть написана без знания View по-прежнему - вы меняете способвы пишете свой код так, чтобы команда (в ViewModel) вызывала какое-то событие, и для вас открывался правильный вид.Это удерживает зависимость View от вашего уровня VM.

0 голосов
/ 30 октября 2011

вы можете сделать так ....

Вы можете использовать <x:Code>:

<Button Content="OK" Click="Button_Click"/>
<x:Code>
  private void Button_Click(object sender,RoutedEventArgs e)
  {
    MessageBox.Show("Hello");
  }
</x:Code>

Стандартный способ сделать это - команды .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...