
Binding Visibility for DataGridColumn in WPF
First you need a BooleanToVisibilityConverter
to Converter bool
to Visibility
MaterialDesignThemes has already owned one
add follow code to your xaml file
xmlns:converters="clr-namespace:MaterialDesignThemes.Wpf.Converters;assembly=MaterialDesignThemes.Wpf"
<converters:BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter" />
refer to
http://stackoverflow.com/questions/22073740/binding-visibility-for-datagridcolumn-in-wpf
DataGridTextColumn
or any other supported dataGrid columns doesn’t lie in Visual tree of DataGrid
, so the solution is:
we add
<FrameworkElement x:Name="dummyElement" Visibility="Collapsed" />
to UserControl
under Grid
just like this
<Grid>
<FrameworkElement x:Name="dummyElement" Visibility="Collapsed" />
.....
.....
</Grid>
then use it
<DataGridTemplateColumn Width="Auto" Header="MyColumn" Visibility="{Binding DataContext.isVisible, Converter={StaticResource booleanToVisibilityConverter}, Source={x:Reference dummyElement}}">
done