Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF数据网格标头位于标头上方_C#_Wpf_Datagridview_Datagrid_Wpfdatagrid - Fatal编程技术网

C# WPF数据网格标头位于标头上方

C# WPF数据网格标头位于标头上方,c#,wpf,datagridview,datagrid,wpfdatagrid,C#,Wpf,Datagridview,Datagrid,Wpfdatagrid,因此,我试图使这个数据网格更有条理: 目前,我正在绑定一个Json文件中的数据,该文件在C#代码中显示。现在我不想继续写“飞行员x”,“飞行员y”等等。。。在这里不断重复我自己。因此,我想知道是否有可能在当前标题上方“添加”标题。比如说,我们在一个标题下有“voornaam”、“achternaam”、“club”和“licentie”,下一个标题下有“voornaam”、“achternaam”、“club”、“licentie”,然后还有“merk”、“type”和“numerplaat”

因此,我试图使这个数据网格更有条理:

目前,我正在绑定一个Json文件中的数据,该文件在C#代码中显示。现在我不想继续写“飞行员x”,“飞行员y”等等。。。在这里不断重复我自己。因此,我想知道是否有可能在当前标题上方“添加”标题。比如说,我们在一个标题下有“voornaam”、“achternaam”、“club”和“licentie”,下一个标题下有“voornaam”、“achternaam”、“club”、“licentie”,然后还有“merk”、“type”和“numerplaat”

我的意思是“标题”是这样的

您可以在下面找到XAML页面的代码

<Grid>
        <DataGrid x:Name="list_participants" ColumnHeaderStyle="{StaticResource HeaderStyle}" ColumnWidth="Auto" RowBackground="Transparent" Foreground="#fafafa" AlternatingRowBackground="#555a62" Background="Transparent" BorderThickness="0" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Team nummer" Binding="{Binding team_number}" />
                <DataGridTextColumn Header="Voornaam" Binding="{Binding team_data.pilot.firstname}" />
                <DataGridTextColumn Header="Achternaam" Binding="{Binding team_data.pilot.lastname}" />
                <DataGridTextColumn Header="Club" Binding="{Binding team_data.pilot.club}" />
                <DataGridTextColumn Header="Licentie" Binding="{Binding team_data.pilot.license}" />
                <DataGridTextColumn Header="Voornaam" Binding="{Binding team_data.navigator.firstname}" />
                <DataGridTextColumn Header="Achternaam" Binding="{Binding team_data.navigator.lastname}" />
                <DataGridTextColumn Header="Club" Binding="{Binding team_data.navigator.club}" />
                <DataGridTextColumn Header="Licentie" Binding="{Binding team_data.navigator.license}" />
                <DataGridTextColumn Header="Merk" Binding="{Binding car_data.brand}" />
                <DataGridTextColumn Header="Type" Binding="{Binding car_data.type}" />
                <DataGridTextColumn Header="Nummerplaat" Binding="{Binding car_data.license_plate}" />
                <DataGridTemplateColumn Header="Toegelaten tot start">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox IsChecked="{Binding allowed_to_start}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTemplateColumn Header="Uit koers genomen">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox IsChecked="{Binding took_out_of_race}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>

您只需在DataGrid上方放置一个额外的网格,用于额外的标题和绑定列宽:

        <StackPanel>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="{Binding ElementName=A1, Path=ActualWidth, Mode=OneWay}"/>
                    <ColumnDefinition Width="{Binding ElementName=B1, Path=ActualWidth, Mode=OneWay}"/>
                    <ColumnDefinition Width="{Binding ElementName=C1, Path=ActualWidth, Mode=OneWay}"/>
                    <ColumnDefinition Width="{Binding ElementName=A2, Path=ActualWidth, Mode=OneWay}"/>
                    <ColumnDefinition Width="{Binding ElementName=B2, Path=ActualWidth, Mode=OneWay}"/>
                    <ColumnDefinition Width="{Binding ElementName=C2, Path=ActualWidth, Mode=OneWay}"/>
                    <ColumnDefinition Width="{Binding ElementName=A3, Path=ActualWidth, Mode=OneWay}"/>
                    <ColumnDefinition Width="{Binding ElementName=B3, Path=ActualWidth, Mode=OneWay}"/>
                    <ColumnDefinition Width="{Binding ElementName=C3, Path=ActualWidth, Mode=OneWay}"/>
                </Grid.ColumnDefinitions>
                <Label Grid.ColumnSpan="3" Grid.Column="0" Content="First dude"/>
                <Label Grid.ColumnSpan="3" Grid.Column="3" Content="Second dude"/>
                <Label Grid.ColumnSpan="3" Grid.Column="6" Content="Third dude"/>
            </Grid>
            <DataGrid>
                <DataGrid.Columns>
                    <DataGridTextColumn x:Name="A1" Header="First"/>
                    <DataGridTextColumn x:Name="B1" Header="B"/>
                    <DataGridTextColumn x:Name="C1" Header="C"/>
                    <DataGridTextColumn x:Name="A2" Header="First"/>
                    <DataGridTextColumn x:Name="B2" Header="B"/>
                    <DataGridTextColumn x:Name="C2" Header="C"/>
                    <DataGridTextColumn x:Name="A3" Header="First"/>
                    <DataGridTextColumn x:Name="B3" Header="B"/>
                    <DataGridTextColumn x:Name="C3" Header="C"/>
                </DataGrid.Columns>
            </DataGrid>
        </StackPanel>


当然,相对于上下文菜单之类的内容,额外的标题不会被视为DataGrid的一部分;如果您需要,所有这些内容都必须手动添加。

检查此链接我不了解这些内容……请检查此问题,这样可能会有所帮助you@VoiceOfTheRain不是真的。。。我已经看过了,但我就是想不出来。。。