AvalonDock:动态更改 LayoutAnchorablePane 的 CanClose 属性
AvalonDock: Dynamically changing LayoutAnchorablePane's CanClose property
在 AvalonDock 中,是否可以在运行时动态修改 LayoutAnchorablePane
的 CanClose
属性?我想 prevent/lock 更改布局,除非用户特别希望这样做并将其打开。
我尝试了以下方法:
- 绑定:无法绑定 属性,因为它不是
DependencyProperty
,所以这样的事情不起作用:<dock:LayoutAnchorable CanClose="{Binding CanClose}">
CanClose
属性:无法在代码隐藏中更改 LayoutAnchorablePane
的 CanClose
属性,因为 属性 是只读。
根据LayoutAnchorablePane
的源代码:
#region CanClose
public bool CanClose
{
get
{
return Children.All( a => a.CanClose );
}
}
#endregion
CanClose
属性 取决于窗格的所有子项,因此更改 LayoutAnchorablePane
的 CanClose
值的一种方法是设置其所有子项的CanClose
属性 到你想要的值。下面是一个例子:
...
foreach(var child in pane.Children)
{
child.CanClose = true; // or false.
}
...
在 AvalonDock 中,是否可以在运行时动态修改 LayoutAnchorablePane
的 CanClose
属性?我想 prevent/lock 更改布局,除非用户特别希望这样做并将其打开。
我尝试了以下方法:
- 绑定:无法绑定 属性,因为它不是
DependencyProperty
,所以这样的事情不起作用:<dock:LayoutAnchorable CanClose="{Binding CanClose}">
CanClose
属性:无法在代码隐藏中更改LayoutAnchorablePane
的CanClose
属性,因为 属性 是只读。
根据LayoutAnchorablePane
的源代码:
#region CanClose
public bool CanClose
{
get
{
return Children.All( a => a.CanClose );
}
}
#endregion
CanClose
属性 取决于窗格的所有子项,因此更改 LayoutAnchorablePane
的 CanClose
值的一种方法是设置其所有子项的CanClose
属性 到你想要的值。下面是一个例子:
...
foreach(var child in pane.Children)
{
child.CanClose = true; // or false.
}
...