【问题标题】:How to use pages like WPF Page?如何使用像 WPF Page 这样的页面?
【发布时间】:2022-07-15 17:33:59
【问题描述】:

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

【问题讨论】:

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

标签: c# avalonia


【解决方案1】:

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

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

TabAViewModel : TabViewModel
{
}

TabBViewModel : TabViewModel
{
}

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

<UserControl>
...
</UserControl>

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

MainViewModel : MyBaseViewModel
{
   public ObservableCollection<TabViewModel> MyTabs { get; ... }
}

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

<Window>
    <TabControl Items={Binding MyTabs}>
      <TabControl.DataTemplates>
          <TabAView />
      </TabControl.DataTemplates>
    </TabControl>
</Window>

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

为什么是伪代码?

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2012-04-25
    • 2013-07-04
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多