C# WPF Как переписать xaml код в code behind

У меня есть коллекция колонок, которая задается в xaml

<GridViewColumnCollection x:Key="ColumnCollection">
            <GridViewColumn x:Name="test"  Width="100" DisplayMemberBinding="{Binding DataColumns[0].Value}">
                <GridViewColumnHeader Name="One" Style="{StaticResource style}" Click="GridViewColumnHeader_Click_1" SizeChanged="GridViewColumnHeader_SizeChanged_1">
                </GridViewColumnHeader>
            </GridViewColumn>
            <GridViewColumn HeaderContainerStyle="{StaticResource style}" Width="100" DisplayMemberBinding="{Binding DataColumns[0].Value}">
                <GridViewColumnHeader Name="Two" Style="{StaticResource style}" Click="GridViewColumnHeader_Click_1" SizeChanged="GridViewColumnHeader_SizeChanged_1">
                </GridViewColumnHeader>
            </GridViewColumn>
            <GridViewColumn HeaderContainerStyle="{StaticResource style}" Width="100" DisplayMemberBinding="{Binding DataColumns[0].Value}">
                <GridViewColumnHeader Name="Three" Style="{StaticResource style}" Click="GridViewColumnHeader_Click_1" SizeChanged="GridViewColumnHeader_SizeChanged_1">
                </GridViewColumnHeader>
            </GridViewColumn>

            <!--<GridViewColumn HeaderContainerStyle="{StaticResource style}" Width="100" Header="{Binding Mode=TwoWay, Path=Header}" DisplayMemberBinding="{Binding DataColumns[1].Value}" />-->
        </GridViewColumnCollection>

Есть следующий шаблон для отображения этих колонок в Header

 <DataTemplate x:Key="MultiColumnHeaderTemplate">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
                <TextBlock Text="Header" HorizontalAlignment="Center" />
                <GridViewHeaderRowPresenter Grid.Row="1" HorizontalAlignment="Stretch" Columns="{StaticResource ColumnCollection}" />
            </Grid>
        </DataTemplate>

Создается DataGrid с колонкой, куда мы указываем наш HeaderTemplate

 <DataGrid Grid.Row="0"  SizeChanged="GridViewColumnHeader_SizeChanged" Name="datagrid">
            <DataGrid.Columns>
                <DataGridTemplateColumn x:Name="col" HeaderTemplate="{StaticResource MultiColumnHeaderTemplate}" CellTemplate="{StaticResource MultiColumnCellTemplate}">
                    <DataGridTemplateColumn.Header>
                        <TextBlock Text="{Binding }" />
                    </DataGridTemplateColumn.Header>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>

Как сделать тоже самое, но через CodeBehind? Колонки будут создаваться динамически. Понятия не имею как создать колонку, применить стиль Header в которой будут совсем другая коллекция колонок.


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