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