0

我正在使用 MV-VM 学习 WPF。我正在使用ICommand, RelayCommand。我有几个视图、模型和视图模型。MainWINdowView 在应用程序启动时打开。MainWindowView 有一个按钮,可通过 MainWindowViewModel 打开另一个名为“FileListview”的 WPF 窗口。FileListView 有一个“View Lookup”按钮,它应该通过 FileListViewModel 打开另一个名为“LookupView”的 WPF 窗口。但是除非我在 App.xaml.cs 中指定 FileListView 而不是 MainWIdowView,否则我无法使此按钮工作。如果我让应用程序从“FileListView”开始,我无法理解为什么“查看查找”按钮会起作用。我也不明白我是否需要 MainWindowView 和 FileListView 的模型,因为除了一个视图的按钮正在打开另一个视图之外,我什么都没有。在文件“App.xaml.cs”后面的代码上,我有

public partial class App : Application
{
  protected override void OnStartup(StartupEventArgs e)
    {
      base.OnStartup(e);
      WPFProject. MainWIndowView window = new MainWIndowView ();
      MainWIndowViewModel  VM = new MainWIndowViewModel ();
      window.DataContext = VM;
      window.Show();
    }
 }

如果有人能指出我使用 WPF 和 MV-VM 来反映我的问题的好文章或示例代码,我将不胜感激。

4

2 回答 2

1

是我将对话框/子窗口与 mvvm 和 wpf 一起使用的方法。请注意 sllev 的评论并发布所有相关代码。

于 2011-08-16T06:32:38.410 回答
0

在重新考虑这个问题后,我能够找出解决方案。 问题的原因:我没有将 View 与它的 ViewModel 类相关联。 所以我把下面的代码放在 FileListView.xaml.cs 后面的代码中。

public partial class FileListView: Window
{
  private FileListViewModel  _ fileListViewModel = new FileListViewModel ();
  public FileListViewModel () 
  {
    InitializeComponent();
    base.DataContext = _fileListViewModel; 
  }
}

谢谢

于 2011-08-16T16:18:34.643 回答