[英]Issue with opening Child window from Main window using WPF with MVVM
我正在使用 MV-VM 學習 WPF。 我正在使用ICommand
, RelayCommand
。 我有幾個視圖、模型和視圖模型。 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.