Skip to content

Style

NameTypeDescription
RowHeaderGripperStyleThumbRow Header Drag Strip Style
ColumnHeaderGripperStyleThumbColumn Header Drag Style
DataGridCellStyleDataGridCellCell Style
DataGridRowStyleDataGridRowLine Style
DataGridColumnHeaderStyleDataGridColumnHeaderColumn Header Style
DataGridRowHeaderStyleDataGridRowHeaderRow Header Style
DataGridComboBoxColumnStyleComboBoxComboBox Non-Edit Mode Style
DataGridEditingComboBoxColumnStyleComboBox
DataGridEditingComboBoxColumnStyle.SmallComboBox
DataGridEditingTextColumnStyleTextBox
DataGridEditingTextColumnStyle.SmallTextBox
DataGridTextColumnStyleTextBlockDefault Text Style

NOTE

Example:

<DataGrid HeadersVisibility="All" RowHeaderWidth="60" AutoGenerateColumns="False" ItemsSource="{Binding DataList}">
    <DataGrid.RowHeaderTemplate>
        <DataTemplate>
            <CheckBox IsChecked="{Binding IsSelected,RelativeSource={RelativeSource AncestorType=DataGridRow}}"/>
        </DataTemplate>
    </DataGrid.RowHeaderTemplate>
    <DataGrid.Columns>
        <DataGridTextColumn IsReadOnly="True" Width="80" CanUserResize="False" Binding="{Binding Index}" Header="Index"/>
        <DataGridTemplateColumn Width="60" CanUserResize="False">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Image Source="{Binding ImgPath}" Width="32" Height="32" Stretch="Uniform"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
        <DataGridTextColumn Width="1*" Binding="{Binding Name}" Header="Name"/>
        <DataGridCheckBoxColumn Width="100" CanUserResize="False" Binding="{Binding IsSelected}" Header="Selected"/>
        <DataGridComboBoxColumn ItemsSource="{Binding Source={StaticResource DemoTypes}}" Width="100" CanUserResize="False" SelectedValueBinding="{Binding Type}" Header="Type"/>
        <DataGridTextColumn Width="1*" Binding="{Binding Remark}" Header="Remark"/>
    </DataGrid.Columns>
</DataGrid>

DataGrid

FAQ

WARNING

For the text display column DataGridTextColumn, you need to set the text content horizontal centered or horizontal right', instead of the default style set in HandyControl as left left, you need to inherit the DataGridCellStyleoverrideHorizontalContentAlignmentattribute. ForCenterorRight`, it should be noted that this method is only applicable to projects that have introduced the HandControl resource style. This is not valid for normal native DataGrids.

Use for example:

xml
<Style x:Key="DataGridTextCenterColumnStyle" TargetType="DataGridCell" BasedOn="{StaticResource DataGridCellStyle}">
    <Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
xml
<DataGrid ItemsSource="{Binding Datas}" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Left" Binding="{Binding Name}" Width="*"/>
        <DataGridTextColumn Header="Centered" CellStyle="{StaticResource DataGridTextCenterColumnStyle}" Width="*" Binding="{Binding Name}"/>
​    </DataGrid.Columns>
</DataGrid>

The effect is as follows:

DataGridWarning01

NOTE

if you want to generate row numbers you should use DataGridAttach Attached Property.

First Remove DataGrid.RowHeaderTemplate Then add this Attached Property

<DataGrid hc:DataGridAttach.ShowRowNumber="True"/>

DataGridShowRowNumber

Released under the MIT License.