如何绑定可见性属性
Posted
技术标签:
【中文标题】如何绑定可见性属性【英文标题】:How to bind visibility property 【发布时间】:2012-05-15 19:23:27 【问题描述】:XAML 代码如下:
<Helper:BooleanVisibilityValueConverter x:Key="BoolToVisible" />
<Control x:Name="ResizeDecorator" MouseMove="ResizeDecorator_MouseMove" Template=" StaticResource ResizeDecoratorTemplate" Visibility="Binding IsButtonVisible,Converter= StaticResource ResourceKey=BoolToVisible,RelativeSource=RelativeSource TemplatedParent" />
<Helper:BooleanVisibilityValueConverter x:Key="BoolToVisible" />
<Control x:Name="ResizeDecorator" MouseMove="ResizeDecorator_MouseMove" Template="StaticResource ResizeDecoratorTemplate" Visibility="Binding IsButtonVisible,Converter=StaticResource ResourceKey=BoolToVisible,RelativeSource=RelativeSource TemplatedParent" />
ViewModel 代码:
private bool _IsButtonVisible;
public bool IsButtonVisible
get return _IsButtonVisible;
set
_IsButtonVisible = value;
NotifyPropertyChanged("IsButtonVisible");
IsButtonVisible =false;
谁能告诉我哪里出错了?
【问题讨论】:
xaml 代码在哪里?请正确发布问题,以便人们可以帮助您! xaml我猜问题在于您在模板化父级上绑定到 IsButtonVisible。相反,您需要绑定到模板化父级的 ViewModel/DataContext 上的 IsButtonVisible - 即
Visibility="Binding DataContext.IsButtonVisible,Converter=StaticResource ResourceKey=BoolToVisible,RelativeSource=RelativeSource TemplatedParent"
【讨论】:
以上是关于如何绑定可见性属性的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 WPF 中的代码绑定 DataGridTextColumn 的可见性属性?
如何将 WPF DataGrid DataColumns 可见性绑定到 UserControl 的 ViewModel 上的属性?