C# WPF Привязка свойств DataGridColumn
Добрый день и с Новым годом) Имеется проблема, которую я банально не знаю как решить. Имею проект WPF с MVVM уклоном. Имеется таблица с колонками. Я хочу сделать сохранение и восстановление при запуске программы свойств этих колонок: размер, положение, видимость и прочее.
<DataGrid x:Name="DataGrid" ItemsSource="{Binding Path=RPS, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False"
IsReadOnly="True" SelectedItem="{Binding SelectedItem}"
material:DataGridAssist.CellPadding="0 5 3 5"
material:DataGridAssist.ColumnHeaderPadding="4 2 2 2"
Tag="{Binding DataContext, RelativeSource={RelativeSource AncestorType=UserControl}}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding SelectionChangedCommand}" CommandParameter="{Binding ElementName=DataGrid, Path=SelectedItems}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<DataGrid.Columns>
<DataGridTextColumn Header="##" Binding="{Binding TestNumber}"></DataGridTextColumn>
<DataGridTemplateColumn Header="State">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding Icon}" Width="15" VerticalAlignment="Center" ToolTip="{Binding Message}" Height="15"></Image>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn x:Name="ColSize" Header="Size" Binding="{Binding Size}"></DataGridTextColumn>
<DataGridTextColumn x:Name="ColName" Header="File Name" Binding="{Binding Name}"></DataGridTextColumn>
<DataGridTextColumn x:Name="ColVehicle" Header="Vehicle" Binding="{Binding Vehicle}"></DataGridTextColumn>
<DataGridTextColumn x:Name="ColVersion" Header="Version" Binding="{Binding Version}"></DataGridTextColumn>
<DataGridTextColumn x:Name="ColDateTime" Header="DateTime" Binding="{Binding DateTime, StringFormat=\{0:dd.MM.yy HH:mm:ss\}}"></DataGridTextColumn>
<DataGridTextColumn x:Name="ColUnix" Header="Unix" Binding="{Binding ArenaCreationTime}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
Для хранения данных о колонке я сделал класс:
public class DataGridColumn
{
public string Text { get; set; }
public string SubText { get; set; }
public bool IsVisible { get; set; }
public int Width { get; set; }
public int Position { get; set; }
}
Во ViewModel я создаю коллекцию
public List<DataGridColumn> Columns { get; set; }
Соответственно, мне нужно как-то связать каждую колонку с этой коллекцией. Как это сделать?