WPF动态绑定隐藏或显示DataGrid一列

发布时间 2023-08-02 21:51:44作者: 改变你我

 

因为datagridtemplatecolumn不在Virsual Tree中,不能继承DataGrid的DataContext,所以想要绑定到datagridtemplatecolumn的 visibility ,需要添加一个代理

 

一、添加一個FrameworkElement的代理

<Window.Resources>
        <FrameworkElement x:Key="ProxyElement" DataContext="{Binding}"/>
 </Window.Resources>

二、用一個不可見的ContentControl綁定上一步的FrameworkElement代理

<ContentControl Visibility="Collapsed" Content="{StaticResource ProxyElement}"/>

三、用代理作爲Visibility的數據源

<DataGridTextColumn Header="列一" Visibility="{Binding DataContext.IsVisibility,Source={StaticResource ProxyElement}}"/>