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; }

Соответственно, мне нужно как-то связать каждую колонку с этой коллекцией. Как это сделать?


Ответы (0 шт):