打开视图按钮单击MVVM

时间:2011-10-30 16:58:08

标签: c# wpf xaml mvvm command

我知道已经有一些像这样的问题,但我似乎无法解决该怎么做,我有一个按钮,我想打开一个新的窗口,有没有办法在纯xaml中做到这一点?我没有看到如何在没有从CodeBehind或ViewModel调用它的情况下打开对话框。我没有使用任何mvvm工具包。

2 个答案:

答案 0 :(得分:4)

  

如果没有从我的CodeBehind或ViewModel调用它,我看不到如何打开对话框。

通常,您在代码中执行此操作 - 但是,大多数MVVM框架提供了一种抽象方法。

这通常通过某种形式的服务位置(即:在ViewModel中注入“ViewService”或类似内容)来处理。另一种选择是使用某种形式的消息传递,这是MVVM Light的方法。

这些方法的优点是可以在不知道View的情况下编写VM - 您正在改变编写代码的方式,以便命令(在ViewModel中)触发某些事件,并且正确的View为你打开。这样可以将View依赖项保留在VM层之外。

答案 1 :(得分:0)

你可以这样做....

您可以使用<x:Code>

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

执行此操作的标准方法是commands