Window _SimpleViewManiager.xaml里面实现开关窗口该怎么用代码实现
时间: 2024-02-21 19:01:43 浏览: 69
首先,在Window_SimpleViewManiager.xaml中,我们需要定义两个按钮,一个用于打开Window_Simple.xaml视图,另一个用于关闭该视图。
定义打开Window_Simple.xaml视图的按钮:
```xml
<Button Content="Open Window Simple" Command="{Binding OpenWindowCommand}" CommandParameter="Window_Simple.xaml"/>
```
这里我们将该按钮与OpenWindowCommand命令绑定,并使用CommandParameter属性指定要打开的视图名称。
定义关闭Window_Simple.xaml视图的按钮:
```xml
<Button Content="Close Window Simple" Command="{Binding CloseWindowCommand}" CommandParameter="Window_Simple.xaml"/>
```
同样地,我们将该按钮与CloseWindowCommand命令绑定,并使用CommandParameter属性指定要关闭的视图名称。
接下来,在Window_SimpleViewManiagerViewModel.cs中,我们需要实现OpenWindowCommand和CloseWindowCommand命令。
打开命令的实现:
```csharp
public ICommand OpenWindowCommand => new RelayCommand<string>(OpenWindow);
private void OpenWindow(string windowName)
{
var window = new Window
{
Title = windowName,
Content = new Uri(windowName, UriKind.Relative)
};
window.Show();
}
```
这里我们使用了RelayCommand类来实现OpenWindowCommand命令。在OpenWindow方法中,我们创建了一个新的Window实例,并将其Content属性设置为要打开的视图的Uri。最后,调用Show方法显示该窗口。
关闭命令的实现:
```csharp
public ICommand CloseWindowCommand => new RelayCommand<string>(CloseWindow);
private void CloseWindow(string windowName)
{
var window = Application.Current.Windows.OfType<Window>().FirstOrDefault(w => w.Title == windowName);
if (window != null)
{
window.Close();
}
}
```
同样地,我们使用RelayCommand类来实现CloseWindowCommand命令。在CloseWindow方法中,我们使用LINQ查询获取指定名称的Window实例,并调用其Close方法关闭该窗口。
希望这些代码可以帮助您实现开关窗口的功能。
阅读全文