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?
使用以下样式(通常情况):
<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)
然后删除此列并将此绑定用于标题.