c# - 视图模型的页面导航
问题描述
我想从 ViewModel 实现页面导航。正如您在代码中看到的那样,主窗口中有一个必须用页面填充的框架。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MaxWidth = "175" ></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid Grid.Column="1">
<Frame Background = "Gray" NavigationUIVisibility= "Hidden" Name = "mainFrame" Margin= "0,0,5,0" >
</Frame>
</Grid>
</Grid >
在 MainWindowViewModel 中,我实现了必须通过单击“转到下一页”按钮来执行的命令方法。此方法称为“ExecuteOpenTestResultsRecoveryPage”
private void ExecuteOpenTestResultsRecoveryPage(object parameter)
{
RecoveryPage recoveryPage = new RecoveryPage();
MainWindow mainWindow = new MainWindow();
mainWindow.mainFrame.NavigationService.Navigate(recoveryPage);
}
通过单击“转到下一页”按钮,该方法被执行,但框架中没有任何反应,我不明白为什么。请你能帮我实现吗?
谢谢!
解决方案
当您想要显示新页面时,我不建议您打开新的 MainWindow。最好向视图发送消息以显示特定的其他视图。这样就可以实现关注点分离。
推荐阅读
- python - 使用 for 循环迭代到多维元组
- list - 获取 Map 中存在的 List 的长度
> 在颤振中 - c# - 更改单选按钮 WPF C# 内的路径填充
- c# - C#如何定义api键等全局常量并防止上传到Github
- javascript - Stoplight Spectral - 通过函数在规则中使用逻辑 OR
- perl - Perl 拆分突然停止
- ant - 无法使用 XmlTask 选择具有属性的 XML 根节点
- javascript - 使用 javascript 从服务器下载压缩文件
- linux - 如何将包含“D,1”、“D,2”或“D,3”的 csv 文件中的行复制到 txt 文件中,其中解决方案与 csv 文件的顺序相同
- java - 无法使用spring boot从yaml文件加载属性