DataGrid行标题WPF

Joe*_*elH 8 c# wpf datatable datagrid

我有一个填充的DataTable(xDataTable),其中包含7个已定义的列 - 我想要用作RowHeader的第一列.

我也有一个DataGrid:

 <DataGrid x:Name="DataGridX" ItemsSource="{Binding}" Grid.Row="0" 
           CanUserAddRows="False" SelectionUnit="Cell" />
Run Code Online (Sandbox Code Playgroud)

然后我设置DataGrid的DataContext:

DataGridX.DataContext = xDataTable;
Run Code Online (Sandbox Code Playgroud)

这一切都有效 - 但是如何将我的DataGrid的第一列设置为RowHeader?

Kyl*_*Ren 7

使用以下样式(通常情况):

<DataGrid.RowHeaderStyle>
    <Style TargetType="{x:Type DataGridRowHeader}">
        <Setter Property="Content" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}},Path=Columns[0].Header,Mode=OneTime}" />
    </Style>
</DataGrid.RowHeaderStyle>
Run Code Online (Sandbox Code Playgroud)

如果我们想要单独Row的单独RowHeader,那么使用:

<DataGrid.RowStyle>
    <Style TargetType="{x:Type DataGridRow}">
        <Setter Property="IsSelected" Value="{Binding IsRowSelected}" />
        <Setter Property="Header" Value="{Binding Content}" />
    </Style>
</DataGrid.RowStyle>
Run Code Online (Sandbox Code Playgroud)

只需根据需要更改上述绑定即可.

如果第一列是:

<DataGridTextColumn Binding="{Binding Content}" Header="Content"/>
Run Code Online (Sandbox Code Playgroud)

然后删除此列并将此绑定用于标题.

  • 有效 - 我的第一列现在是行标题。但是,然后第一列再次显示为另一列 - 我可以防止这种情况吗? (2认同)