【问题标题】:How to switch between document tabs in AvalonDock 2如何在 AvalonDock 2 中的文档选项卡之间切换
【发布时间】:2018-08-28 21:30:27
【问题描述】:

我已经构建了一个使用 AvalonDock 2 的小应用程序。我将我的视图模型绑定到停靠管理器,可以创建和删除文档,一切都很好。但是,我确实要做一件事:当我打开多个文档时,我无法从代码中将特定文档选项卡设为活动且可见的选项卡(就像我单击选项卡标题一样)。

我已绑定到“ActiveContent”属性并将其设置为我希望成为活动且可见的文档,但这无济于事。

请有人给我一些关于如何做到这一点的建议吗?

【问题讨论】:

    标签: c# avalondock


    【解决方案1】:

    经过一番研究,结果证明这是一项微不足道的任务。实际问题是缺乏关于此类琐碎任务的文档。因此,对于所有遇到同样问题的人来说,答案是:

    每个LayoutItem 都有一个名为IsSelected 的属性。通过将其值设置为“true”,代表 LayoutItem 的选项卡将切换到视图中。

    【讨论】:

    • Andreas,这是一个有用的指针,但如果您能提供一个示例,那就太好了(鉴于官方文档对此很清楚)。否则,这只是答案的一半。
    • @CJBrew:老实说,将对象的属性设置为值不需要样本。也许你可以解释一下,你想看什么样的样本。
    • 当然,在 xaml 中静态设置属性是微不足道的。但在这种情况下:LayoutItem 是哪个控件?您如何将该属性绑定到视图模型?
    【解决方案2】:

    这是一个非 MMVM 解决方案,用于使布局成为 AvalonDock 2 中的活动或选定布局。

    下面的代码与您的 XAML MainWindow 编写在同一类中,其中“mainPanel”是您的 LayoutDocumentPane 的名称。

    XAML

    <xcad:LayoutDocumentPane x:Name="mainPanel">
    

    代码背后:

    public void MakeActiveLayout(String layoutTitle)
    {
        foreach (LayoutDocument child in mainPanel.Children)
        {
            if(child.Title == layoutTitle)
            {
                child.IsSelected = true;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多