gpt4 book ai didi

wpf - 遵循 MVVM 模式在 WPF 应用程序中处理导航的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 22:52:31 25 4
gpt4 key购买 nike

我已经在 .xaml 文件后面的事件处理程序中看到了这一点,但它似乎并不遵循 MVVM 模式:MainApplication.mainFrame.Navigate(new HomePage()); .是否有更好的方法可以在 ViewModel 中使用 MVVM 模式处理导航?还是在 XAML 中?

最佳答案

如果您正在寻找根据数据上下文显示不同的 UserControl,那么只需了解以下简单的 DataBinding 和 DataTemplate 概念并对其进行扩展。
想象一下,您有一个名为 CurrentViewModel 的属性,它绑定(bind)到 Window 内的 ContentControl 的内容

 <Window ... 
<ContentControl Content="{Binding CurrentViewModel}" />
</Window>

现在假设您有 ViewModel 类 ClassA 和 ClassB,因此适本地将实例设置为 CurrentViewModel 并为您的类定义全局 DataTemplates (Views)
<DataTemplate DataType="{x:Type vm:ClassA}">
<local:UserControlForA../>
</DataTemplate>


<DataTemplate DataType="{x:Type vm:ClassB}">
<local:UserControlForB../>
</DataTemplate>

现在 View 由 ViewModel 逻辑自动控制,WPF 将负责通过 Datatemplate 显示 UserControl。

如果您不熟悉 MVVM,最好使用这篇文章。 http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

关于wpf - 遵循 MVVM 模式在 WPF 应用程序中处理导航的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2350585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com