gpt4 book ai didi

wpf - 如何使用 AvalonDock 选择选项卡

转载 作者:行者123 更新时间:2023-12-05 03:10:31 24 4
gpt4 key购买 nike

我正在尝试在 AvalonDock 中选择选项卡(在 LayoutDocumentPaneGroup 和 LayoutAnchorablePane 中)。这看起来应该是一件容易的事,但我正在努力寻找有关该主题的任何文档。到目前为止,我得到的最好的是选择初始选项卡的能力(见下文),但在初始加载后更改绑定(bind)属性时,此绑定(bind)似乎不会持续存在。

    <dock:DockingManager Name="DockingManager" Grid.Row="2" 
AnchorablesSource="{Binding Anchorables}"
DocumentsSource="{Binding Documents}"
DocumentClosed="DockingManager_DocumentClosed"
DocumentClosing="DockingManager_DocumentClosing"
Loaded="DockingManager_Loaded"
MouseUp="DockingManager_MouseUp">
<dock:DockingManager.LayoutItemContainerStyle>
<Style TargetType="{x:Type dockctrl:LayoutItem}" >
<Setter Property="Title" Value="{Binding Model.Title}" />
<Setter Property="CloseCommand" Value="{Binding Model.CloseCommand}" />
<Setter Property="CanClose" Value="{Binding Model.CanClose}" />
<Setter Property="IsSelected" Value="False" />
<Style.Triggers>
<DataTrigger Binding="{Binding Model.Title}" Value="Resources">
<Setter Property="IsSelected" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
</dock:DockingManager.LayoutItemContainerStyle>

<dock:LayoutRoot>
<dock:LayoutPanel Orientation="Horizontal">

<dock:LayoutAnchorablePaneGroup x:Name="leftAnchorableGroup" DockWidth="300" >
<dock:LayoutAnchorablePane />
</dock:LayoutAnchorablePaneGroup>

<dock:LayoutPanel Orientation="Vertical">
<dock:LayoutPanel Orientation="Horizontal">
<dock:LayoutDocumentPaneGroup x:Name="leftDocumentGroup">
<dock:LayoutDocumentPane />
</dock:LayoutDocumentPaneGroup>
</dock:LayoutPanel>
</dock:LayoutPanel>

</dock:LayoutPanel>
</dock:LayoutRoot>
</dock:DockingManager>

但是,如果我替换这些行:

<Setter Property="IsSelected" Value="False" />
<Style.Triggers>
<DataTrigger Binding="{Binding Model.Title}" Value="Resources">
<Setter Property="IsSelected" Value="True" />
</DataTrigger>
</Style.Triggers>

与:

<Setter Property="IsSelected" Value="{Binding Model.ContentIsSelected" />

...当我更改 ContentIsSelected 的值时它不起作用。我可以看到(使用 Snoop)ContentIsSelected 本身的值实际上在改变,但是 IsSelected 不会随之改变?!

我还发现了另一个问题(这让我尝试使用 IsSelected):How to switch between document tabs in AvalonDock 2但是,我不完全确定如何以编程方式访问 XAML 中的绑定(bind)之外的 LayoutItems。我尝试了 DockingManager.GetLayoutItemFromModel() 函数,但无法让它返回 NULL 以外的任何内容。

如何选择一个选项卡并将其置于 View /焦点中(就像我用鼠标单击该选项卡一样)?

最佳答案

最终解决方案是默认绑定(bind)不符合预期。

<Setter Property="IsSelected" Value="{Binding Model.ContentIsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />

关于wpf - 如何使用 AvalonDock 选择选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39396035/

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