C# 保存并加载自动生成的列可见性

C# 保存并加载自动生成的列可见性,c#,wpf,binding,datagrid,C#,Wpf,Binding,Datagrid,我在WPF中有一个Datagrid和一个列选择对话框: <DataGrid Margin="10,10,10,5" ItemsSource="{Binding ClientView, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="True" AutoGeneratingColumn="DataGrid_AutoGeneratingColumn" IsReadOnly="True" /> <Border B

我在WPF中有一个Datagrid和一个列选择对话框:

<DataGrid Margin="10,10,10,5" ItemsSource="{Binding ClientView, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="True"  AutoGeneratingColumn="DataGrid_AutoGeneratingColumn" IsReadOnly="True" />
<Border BorderBrush="Black" BorderThickness="1" Margin="{Binding ContextMargin}" HorizontalAlignment="Left" VerticalAlignment="Top">
    <ItemsControl ItemsSource="{Binding ElementName=DGrid, Path=Columns}" Background="WhiteSmoke" HorizontalAlignment="Left">
         <ItemsControl.ItemTemplate>
              <DataTemplate>
                    <CheckBox IsChecked="{Binding Visibility, Converter={StaticResource VisibilityToBoolConv}}" Margin="5,3,5,3" Content="{Binding Header}"/>
              </DataTemplate>
          </ItemsControl.ItemTemplate>
    </ItemsControl>
</Border>

那很好。 我现在的问题是: 如何获取网格中可见的列来保存它们,并在下一次启动应用程序后再次加载此设置?
我想我必须将列可见性绑定到任何变量,但我不知道该如何绑定,因为我不知道datagrid的列是如何命名的。这是一个动态值。有人知道我该如何解决这个问题吗?

为什么不在
DataGrid\u AutoGeneratingColumn
中执行此操作?嗨,Omribitan,谢谢你的提示;)昨天晚了:)我在复选框中添加了Check/Uncheck事件,以获取任何更改,并在DataGrid_AutogeneratingColumn中设置此可见性。