繁体   English   中英

使用带有 MVVM 的 WPF 从主 window 打开子 window 的问题

[英]Issue with opening Child window from Main window using WPF with MVVM

我正在使用 MV-VM 学习 WPF。 我正在使用ICommandRelayCommand 我有几个视图、模型和视图模型。 MainWINdowView 在应用程序启动时打开。 MainWindowView 有一个按钮,可通过 MainWindowViewModel 打开另一个名为“FileListview”的 WPF window。 FileListView 有一个“View Lookup”按钮,它应该通过 FileListViewModel 打开另一个名为“LookupView”的 WPF window。 但除非我在 App.xaml.cs 中指定 FileListView 而不是 MainWIdowView,否则我无法使此按钮工作。 如果我让应用程序从“FileListView”开始,我无法理解为什么“查看查找”按钮会起作用。 我也不明白是否需要 model 用于 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 来反映我的问题的好文章或示例代码,我将不胜感激。

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

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

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

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM