假设我们有一个mainWindow用于应用程序,我们想要第二个窗口或usercontrole(最适合)作为设置窗口。我们如何打开此窗口并使用mvvmLight方法关闭它?
这是我用于打开新窗口的代码。
var settingWindow = new SettingsViewWindow();
settingWindow.Show();
这是我用于关闭窗口的代码。
This.Close();
我不太了解userControle controle以及何时使用它。如果你知道一个youtube视频或一个我可以阅读它的网站,那就会被认可。或者只是简单地删除一个解释。
以下是我如何构建MenuItem点击事件。在这个时候,这就是我喜欢用按钮敲打我的事件处理器的方法,并把它们放在一个令人沮丧的regrion中。 如果我知道如何将这个底部放在一个spolier中。 ;)
private void btnNav_Click(object sender, RoutedEventArgs
{
if(sender == btnNavSettings)
{
OpenSettingsWindow();
}
else if(sender == btnNavExitApp)
{
ShutDownApplication();
}
}
/// <summary>
/// Opens a settings window.
/// Only on settings window can be open at time.
/// </summary>
private void OpenSettingsWindow()
{
if(GlobalVariabels.GUI_Variabels.SettingsWindowIsOpen != true)
{
var settingWindow = new SettingsViewWindow();
settingWindow.Show();
}
}
/// <summary>
/// Exit the application properly.
/// </summary>
private void ShutDownApplication()
{
Application.Current.Shutdown(0);
}
答案 0 :(得分:0)
您可以使用Messenger
类在两个组件之间传递消息,例如视图模型和视图:
MVVM Light WPF open new window How to open a new window using MVVM Light Toolkit
或者您可以创建一个处理窗口打开的对话框服务:
Best Pratice to open a New Window in MVVM Light with Parameters
然后使用这样的对话服务注入视图模型:
Separate project for view models to "enforce" MVVM: How do I open dialogs?
这个主题有很多链接。如果您需要更多信息,请参阅我在此提供的内容以及Google或Bing:)