C#循环/循环导航最佳实践

C#循环/循环导航最佳实践,c#,wpf,navigationservice,C#,Wpf,Navigationservice,考虑一个具有a、B和C页面的C#应用程序,以及以下流程 A -> B B -> C C -> A A -> B ... 我目前在每个页面中使用这一行代码进行导航 this.NavigationService.Navigate(new B()); 有几个问题 使用循环导航不断实例化新页面是否合适?或者我应该创建页面的单例实例并在它们之间导航 如果可以创建新实例,如何清除旧页面?我不需要支持向后导航 如果我应该创建单例实例,那么这些实例应该放在哪里 谢谢 每次用户导航时,

考虑一个具有
a
B
C
页面的C#应用程序,以及以下流程

A -> B
B -> C
C -> A
A -> B
...
我目前在每个页面中使用这一行代码进行导航

this.NavigationService.Navigate(new B());
有几个问题

  • 使用循环导航不断实例化新页面是否合适?或者我应该创建页面的单例实例并在它们之间导航
  • 如果可以创建新实例,如何清除旧页面?我不需要支持向后导航
  • 如果我应该创建单例实例,那么这些实例应该放在哪里

  • 谢谢

    每次用户导航时,我都会实例化UI,但我可能会保留viewmodel中呈现给该UI片段的状态。 我使用用户控件而不是页面,并且主要使用viewmodel在contentcontrol中首先对内容进行模板化来导航

    1) 取决于您是否需要保留状态。如果您使用的是mvvm,那么该状态是否为纯ui

    2) 如果您希望能够很好地控制事物的实例化时间,请使用不同的方法进行导航

    3) 在字典里。按类型键入