如何使用像 WPF Page 这样的页面?

分享于2022年07月17日 avalonia c# 问答
【问题标题】:How to use pages like WPF Page?如何使用像 WPF Page 这样的页面?
【发布时间】:2022-07-15 17:33:59
【问题描述】:

在 WPF 中,我们有一个 Page 类,它允许我们在单个窗口中使用多页界面。在阿瓦洛尼亚怎么做?

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

【解决方案1】:

您所描述的内容通常可以通过 TabControl 解决。

每个选项卡都可以有一个 TabViewModel 派生类实例作为其数据上下文进行绑定。

TabAViewModel : TabViewModel
{
}

TabBViewModel : TabViewModel
{
}

然后这些可以有自己的视图 *.axaml 文件......所以在这种情况下 TabAView.axaml TabBView.axaml 。它们可以包含任意 UI。全屏内容或仅 Path


...

然后您可以收集 TabControl 也绑定的那些,等等类似于 MainViewModel.cs ...

MainViewModel : MyBaseViewModel
{
   public ObservableCollection MyTabs { get; ... }
}

MainView.axal 然后看起来像这样。


    
      
          
      
    

现在请注意。这是伪代码,但它解释了概念以及事物如何结合在一起。我已经在 WPF 和 Avalonia 中完成了这项工作。

为什么是伪代码?

根据您使用的框架,它们会彻底改变有关如何执行此操作的实现细节。

Prism 中,您需要实现 RegionAdaptor ,在Avalonia 中,您可能需要 DataTemplateSelector Views 连接到 ViewModels ,在WPF 中,这或多或少是可行的.

无论哪种方式,这个概念都是有效的。

【讨论】: