由于datagridtemplatecolumn不在Virsual Tree中,不能继承DataGrid的DataContext,spa
因此想要绑定到datagridtemplatecolumn的 visibility ,须要添加一个代理代理
一、在Resources添加FrameworkElement,DataContext绑定为当前DataContextcode
<UserControl.Resources> <FrameworkElement x:Key="ProxyElement" DataContext="{Binding}"/> </UserControl.Resources>
二、添加一个ContentControl,Conent绑定到以上的FrameworkElment(这步的目的是将这个Element添加到VirsualTree)blog
<!--只是将ProxyElement添加到树--> <ContentControl Content="{StaticResource ProxyElement}" Visibility="Collapsed"/>
三、datagridtemplatecolumn的Visiblity绑定到ProxyElement继承
Visibility="{Binding DataContext.IsManager, Source={StaticResource ProxyElement},Converter={StaticResource ConverterBoolToVisibilityCollapsed}}"