使用AvalonDock实现停靠

下面文章中提到了绑定代理的使用

https://stackoverflow.com/questions/63645164/binding-an-avalondock-layoutanchorable-isvisible-property

您的绑定有两个主要问题。

  1. 该属性不是 ,而只是一个 CLR 属性,因此无法绑定它IsVisibleDependencyProperty
  2. A 不是可视化树的一部分,因此绑定不起作用,您将在输出窗口中看到相应的绑定错误LayoutAnochorableElementNameRelativeSource

我不确定是否有特定的设计选择或限制不使该属性成为依赖属性,但您可以通过创建附加属性来解决此问题。此属性可以绑定,并在更改时设置 CLR 属性。IsVisibleIsVisibleLayoutAnchorable

您可以在 XAML 中绑定此属性,但如前所述,这将不起作用,因为它不在可视化树中。列也会出现同样的问题。在这篇相关文章中,您将找到我们将使用的类的解决方法。请将此类复制到您的项目中。LayoutAnchorableDataGridBindingProxy

在 中创建绑定代理的实例。它用于访问菜单项。DockingManager.Resources

<dock:DockingManager x:Name="Dockman" DockPanel.Dock="Left" Grid.Row="1">
   <dock:DockingManager.Resources>
      <local:BindingProxy x:Key="mnuPane1Proxy" Data="{Binding ElementName=mnuPane1}"/>
   </dock:DockingManager.Resources>
   <!-- ...other XAML code. -->
</dock:DockingManager>

绑定代理的使用

<xcad:LayoutAnchorable ContentId="content1"
                       x:Name="anchorable1"
                       IsSelected="True"
                       local:LayoutAnchorableProperties.IsVisible="{Binding Data.IsChecked, Source={StaticResource mnuPane1Proxy}}">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值