下面文章中提到了绑定代理的使用
您的绑定有两个主要问题。
- 该属性不是 ,而只是一个 CLR 属性,因此无法绑定它
IsVisible
DependencyProperty
- A 不是可视化树的一部分,因此绑定不起作用,您将在输出窗口中看到相应的绑定错误
LayoutAnochorable
ElementName
RelativeSource
我不确定是否有特定的设计选择或限制不使该属性成为依赖属性,但您可以通过创建附加属性来解决此问题。此属性可以绑定,并在更改时设置 CLR 属性。IsVisible
IsVisible
LayoutAnchorable
您可以在 XAML 中绑定此属性,但如前所述,这将不起作用,因为它不在可视化树中。列也会出现同样的问题。在这篇相关文章中,您将找到我们将使用的类的解决方法。请将此类复制到您的项目中。LayoutAnchorable
DataGrid
BindingProxy
在 中创建绑定代理的实例。它用于访问菜单项。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}}">