syncfusion-winui-datagrid

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Implementing WinUI DataGrid (SfDataGrid)

实现WinUI DataGrid(SfDataGrid)

Comprehensive guide for implementing the Syncfusion WinUI DataGrid control. SfDataGrid is a high-performance, feature-rich control for displaying and manipulating tabular data in WinUI 3 applications with support for sorting, filtering, grouping, editing, summaries, and more.
这是一份实现Syncfusion WinUI DataGrid控件的全面指南。SfDataGrid是一款高性能、功能丰富的控件,用于在WinUI 3应用中展示和操作表格数据,支持排序、筛选、分组、编辑、汇总等多种功能。

When to Use This Skill

何时使用本教程

Use this skill when you need to:
  • Display tabular data with 100 to 1,000,000+ rows in WinUI applications
  • Implement sortable, filterable, and groupable data views
  • Enable inline editing with validation for data entry scenarios
  • Perform CRUD (Create, Read, Update, Delete) operations on datasets
  • Export data to Excel format
  • Display hierarchical data with master-details views
  • Implement drag-and-drop row reordering
  • Show data summaries and aggregations (sum, average, count, etc.)
  • Handle real-time data updates with ObservableCollection
  • Create data-centric enterprise Windows desktop applications
Important Note: In WinUI 3, DataContext is not directly inherited from Window. You must explicitly set DataContext on the Grid or Page element in XAML (e.g.,
<Grid DataContext="{x:Bind ViewModel}">
) for data binding to work properly.
当你需要完成以下需求时可使用本教程:
  • 在WinUI应用中展示100到1,000,000+行的表格数据
  • 实现可排序、可筛选、可分组的数据视图
  • 为数据录入场景启用带校验的行内编辑功能
  • 对数据集执行CRUD(创建、读取、更新、删除)操作
  • 将数据导出为Excel格式
  • 用主从视图展示层级数据
  • 实现拖拽行重排序功能
  • 展示数据汇总和聚合结果(求和、平均值、计数等)
  • 用ObservableCollection处理实时数据更新
  • 开发以数据为核心的企业级Windows桌面应用
重要提示: 在WinUI 3中,DataContext不会从Window直接继承。你必须在XAML中显式为Grid或Page元素设置DataContext(例如
<Grid DataContext="{x:Bind ViewModel}">
),数据绑定才能正常工作。

DataGrid Overview

DataGrid概述

SfDataGrid (
Syncfusion.UI.Xaml.DataGrid.SfDataGrid
) is the primary grid control for WinUI 3, offering:
  • High Performance: UI and data virtualization for millions of rows
  • Rich Data Operations: Sorting, filtering, grouping with multi-level support
  • Editing: Cell/row/batch editing modes with validation
  • Summaries: Table, group, and caption summaries with custom aggregates
  • Selection: Single/multiple row or cell selection
  • Styling: Conditional formatting and custom templates
  • Export: Excel export with styling
  • Advanced Features: Unbound rows, master-details, frozen columns
Required Packages:
  • Main Package:
    Syncfusion.Grid.WinUI
    (DataGrid control)
  • Export Package:
    Syncfusion.GridExport.WinUI
    (Excel export functionality)
  • Excel Engine:
    Syncfusion.XlsIO.NET
    (Required for export operations)
Namespace:
Syncfusion.UI.Xaml.DataGrid
SfDataGrid
Syncfusion.UI.Xaml.DataGrid.SfDataGrid
)是WinUI 3的核心网格控件,提供以下能力:
  • 高性能: 支持UI和数据虚拟化,可承载数百万行数据
  • 丰富的数据操作: 支持多级排序、筛选、分组
  • 编辑能力: 单元格/行/批量编辑模式,附带校验功能
  • 汇总功能: 表格、分组、标题汇总,支持自定义聚合
  • 选择能力: 单选/多选行或单元格
  • 样式自定义: 条件格式和自定义模板
  • 导出能力: 带样式的Excel导出
  • 高级特性: 未绑定行、主从视图、冻结列
所需依赖包:
  • 核心包:
    Syncfusion.Grid.WinUI
    (DataGrid控件本身)
  • 导出包:
    Syncfusion.GridExport.WinUI
    (Excel导出功能)
  • Excel引擎:
    Syncfusion.XlsIO.NET
    (导出操作必备依赖)
命名空间:
Syncfusion.UI.Xaml.DataGrid

Documentation and Navigation Guide

文档与导航指南

Getting Started

入门指南

📄 Read: references/getting-started.md
  • Data binding fundamentals (IEnumerable, ObservableCollection, dynamic objects)
  • ItemsSource configuration and INotifyCollectionChanged
  • Complex property binding (nested objects)
  • Basic XAML setup and first implementation
  • Package installation and namespace registration
📄 阅读: references/getting-started.md
  • 数据绑定基础(IEnumerable、ObservableCollection、动态对象)
  • ItemsSource配置与INotifyCollectionChanged
  • 复杂属性绑定(嵌套对象)
  • 基础XAML设置与首次实现
  • 包安装与命名空间注册

Column Management

列管理

📄 Read: references/columns.md
  • Column types (GridTextColumn, GridNumericColumn, GridCheckBoxColumn, GridComboBoxColumn, etc.)
  • Auto-generate vs manual column definition
  • Column width modes (Auto, Star, None, Fill, AutoLastColumnFill)
  • Column sizing, autosize, and resizing
  • Show/hide columns and column visibility
  • Column reordering and freeze columns
📄 阅读: references/columns.md
  • 列类型(GridTextColumn、GridNumericColumn、GridCheckBoxColumn、GridComboBoxColumn等)
  • 自动生成列与手动列定义
  • 列宽模式(Auto、Star、None、Fill、AutoLastColumnFill)
  • 列尺寸调整、自动适配、拖拽调整
  • 列的显示/隐藏与可见性控制
  • 列重排序与冻结列

Data Operations (Sorting, Filtering, Grouping)

数据操作(排序、筛选、分组)

📄 Read: references/data-operations.md
  • Sorting: Single and multi-column sorting, custom sorting, tri-state sorting
  • Filtering: Programmatic filters, view predicates, column filters, filter row
  • Grouping: Single and multi-level grouping, custom grouping, expand/collapse
  • Group summaries and filter row configuration
📄 阅读: references/data-operations.md
  • 排序:单列与多列排序、自定义排序、三态排序
  • 筛选:程序化筛选、视图谓词、列筛选、筛选行
  • 分组:单级与多级分组、自定义分组、展开/折叠
  • 分组汇总与筛选行配置

Editing and Data Validation

编辑与数据校验

📄 Read: references/editing-validation.md
  • Editing modes: Cell, row, and batch editing
  • Edit triggers (single click, double click, F2 key)
  • Data validation rules and error handling
  • CRUD operations: Add, update, delete rows
  • Commit and cancel changes
  • CurrentCell navigation
📄 阅读: references/editing-validation.md
  • 编辑模式:单元格、行、批量编辑
  • 编辑触发条件(单击、双击、F2键)
  • 数据校验规则与错误处理
  • CRUD操作:添加、更新、删除行
  • 提交与取消修改
  • CurrentCell导航

Selection

选择功能

📄 Read: references/selection.md
  • Selection modes: Single, Multiple, Extended, None
  • Selection units: Row and Cell
  • SelectedItem, SelectedItems, SelectedIndex binding
  • Programmatic selection and SelectionChanged events
  • Select all rows, select ranges
📄 阅读: references/selection.md
  • 选择模式:单选、多选、扩展选择、无选择
  • 选择单位:行、单元格
  • SelectedItem、SelectedItems、SelectedIndex绑定
  • 程序化选择与SelectionChanged事件
  • 全选行、选择范围

Summaries and Aggregations

汇总与聚合

📄 Read: references/summaries.md
  • Table summaries (displayed in footer)
  • Group summaries (per group)
  • Caption summaries (in group headers)
  • Built-in aggregates (Sum, Average, Count, Min, Max)
  • Custom summary calculations
  • Summary row positioning
📄 阅读: references/summaries.md
  • 表格汇总(展示在页脚)
  • 分组汇总(每个分组单独展示)
  • 标题汇总(展示在分组头部)
  • 内置聚合函数(求和、平均值、计数、最小值、最大值)
  • 自定义汇总计算
  • 汇总行位置配置

Conditional Styling

条件样式

📄 Read: references/conditional-styling.md
  • Row styling based on data conditions
  • Cell styling and custom templates
  • Style selectors for dynamic styling
  • Visual states and data templates
  • Alternating row colors
📄 阅读: references/conditional-styling.md
  • 基于数据条件的行样式
  • 单元格样式与自定义模板
  • 动态样式的样式选择器
  • 视觉状态与数据模板
  • 交替行颜色

Advanced Row Features

高级行特性

📄 Read: references/row-features.md
  • Row drag and drop for reordering
  • Unbound rows (above and below data rows)
  • Master-details view for hierarchical data
  • Row height customization
  • Details view templates and nested grids
📄 阅读: references/row-features.md
  • 拖拽行重排序
  • 未绑定行(数据行上方和下方)
  • 层级数据的主从视图
  • 行高自定义
  • 详情视图模板与嵌套网格

Data Virtualization

数据虚拟化

📄 Read: references/virtualization.md
  • Data virtualization for large datasets
  • UI virtualization (enabled by default)
  • Virtual mode configuration
  • Performance optimization techniques
  • Handling 100,000+ rows efficiently
📄 阅读: references/virtualization.md
  • 面向大数据集的数据虚拟化
  • UI虚拟化(默认启用)
  • 虚拟模式配置
  • 性能优化技巧
  • 高效处理100,000+行数据

Export to Excel

导出到Excel

📄 Read: references/export.md
  • Export entire grid to Excel (.xlsx)
  • Export options and customization
  • Export selected rows only
  • Export with styling and formatting
  • Custom export logic
📄 阅读: references/export.md
  • 将整个网格导出为Excel(.xlsx格式)
  • 导出选项与自定义配置
  • 仅导出选中行
  • 带样式和格式导出
  • 自定义导出逻辑

Quick Start Example

快速入门示例

Basic Implementation

基础实现

xml
<!-- MainPage.xaml -->
<Page xmlns:dataGrid="using:Syncfusion.UI.Xaml.DataGrid">
    
    <Grid>
        <dataGrid:SfDataGrid x:Name="sfDataGrid"
                             ItemsSource="{Binding Orders}"
                             AutoGenerateColumns="True"
                             AllowSorting="True"
                             AllowFiltering="True"
                             AllowEditing="True"
                             SelectionMode="Single" />
    </Grid>
</Page>
csharp
// MainPage.xaml.cs
using Microsoft.UI.Xaml.Controls;
using System.Collections.ObjectModel;

public sealed partial class MainPage : Page
{
    public ObservableCollection<Order> Orders { get; set; }
    
    public MainPage()
    {
        this.InitializeComponent();
        
        Orders = new ObservableCollection<Order>
        {
            new Order { OrderID = 1001, CustomerName = "Maria Anders", Country = "Germany", Total = 250.50M },
            new Order { OrderID = 1002, CustomerName = "Ana Trujillo", Country = "Mexico", Total = 180.00M },
            new Order { OrderID = 1003, CustomerName = "Antonio Moreno", Country = "Mexico", Total = 420.75M }
        };
        
        sfDataGrid.ItemsSource = Orders;
    }
}

// Order Model
public class Order
{
    public int OrderID { get; set; }
    public string CustomerName { get; set; }
    public string Country { get; set; }
    public decimal Total { get; set; }
}
xml
<!-- MainPage.xaml -->
<Page xmlns:dataGrid="using:Syncfusion.UI.Xaml.DataGrid">
    
    <Grid>
        <dataGrid:SfDataGrid x:Name="sfDataGrid"
                             ItemsSource="{Binding Orders}"
                             AutoGenerateColumns="True"
                             AllowSorting="True"
                             AllowFiltering="True"
                             AllowEditing="True"
                             SelectionMode="Single" />
    </Grid>
</Page>
csharp
// MainPage.xaml.cs
using Microsoft.UI.Xaml.Controls;
using System.Collections.ObjectModel;

public sealed partial class MainPage : Page
{
    public ObservableCollection<Order> Orders { get; set; }
    
    public MainPage()
    {
        this.InitializeComponent();
        
        Orders = new ObservableCollection<Order>
        {
            new Order { OrderID = 1001, CustomerName = "Maria Anders", Country = "Germany", Total = 250.50M },
            new Order { OrderID = 1002, CustomerName = "Ana Trujillo", Country = "Mexico", Total = 180.00M },
            new Order { OrderID = 1003, CustomerName = "Antonio Moreno", Country = "Mexico", Total = 420.75M }
        };
        
        sfDataGrid.ItemsSource = Orders;
    }
}

// Order Model
public class Order
{
    public int OrderID { get; set; }
    public string CustomerName { get; set; }
    public string Country { get; set; }
    public decimal Total { get; set; }
}

Common Patterns

常用模式

Pattern 1: Manual Column Definition

模式1:手动定义列

xml
<dataGrid:SfDataGrid x:Name="sfDataGrid"
                     AutoGenerateColumns="False"
                     ItemsSource="{Binding Orders}">
    <dataGrid:SfDataGrid.Columns>
        <dataGrid:GridTextColumn MappingName="OrderID" 
                                 HeaderText="Order ID" 
                                 Width="120" />
        <dataGrid:GridTextColumn MappingName="CustomerName" 
                                 HeaderText="Customer" 
                                 Width="200" />
        <dataGrid:GridTextColumn MappingName="Country" 
                                 Width="150" />
        <dataGrid:GridNumericColumn MappingName="Total" 
                                    HeaderText="Total Amount"
                                    Width="150" />
    </dataGrid:SfDataGrid.Columns>
</dataGrid:SfDataGrid>
xml
<dataGrid:SfDataGrid x:Name="sfDataGrid"
                     AutoGenerateColumns="False"
                     ItemsSource="{Binding Orders}">
    <dataGrid:SfDataGrid.Columns>
        <dataGrid:GridTextColumn MappingName="OrderID" 
                                 HeaderText="Order ID" 
                                 Width="120" />
        <dataGrid:GridTextColumn MappingName="CustomerName" 
                                 HeaderText="Customer" 
                                 Width="200" />
        <dataGrid:GridTextColumn MappingName="Country" 
                                 Width="150" />
        <dataGrid:GridNumericColumn MappingName="Total" 
                                    HeaderText="Total Amount"
                                    Width="150" />
    </dataGrid:SfDataGrid.Columns>
</dataGrid:SfDataGrid>

Pattern 2: Enable Sorting and Filtering

模式2:启用排序和筛选

xml
<dataGrid:SfDataGrid x:Name="sfDataGrid"
                     ItemsSource="{Binding Orders}"
                     AllowSorting="True"
                     AllowFiltering="True"
                     FilterRowPosition="FixedTop"
                     AllowTriStateSorting="True" />
xml
<dataGrid:SfDataGrid x:Name="sfDataGrid"
                     ItemsSource="{Binding Orders}"
                     AllowSorting="True"
                     AllowFiltering="True"
                     FilterRowPosition="FixedTop"
                     AllowTriStateSorting="True" />

Pattern 3: Enable Grouping

模式3:启用分组

xml
<dataGrid:SfDataGrid x:Name="sfDataGrid"
                     ItemsSource="{Binding Orders}"
                     AllowGrouping="True"
                     ShowGroupDropArea="True" />
csharp
// Programmatic grouping
sfDataGrid.GroupColumnDescriptions.Add(new GroupColumnDescription { ColumnName = "Country" });
xml
<dataGrid:SfDataGrid x:Name="sfDataGrid"
                     ItemsSource="{Binding Orders}"
                     AllowGrouping="True"
                     ShowGroupDropArea="True" />
csharp
// 程序化分组
sfDataGrid.GroupColumnDescriptions.Add(new GroupColumnDescription { ColumnName = "Country" });

Pattern 4: Enable Editing

模式4:启用编辑

xml
<dataGrid:SfDataGrid x:Name="sfDataGrid"
                     ItemsSource="{Binding Orders}"
                     AllowEditing="True"
                     EditTrigger="OnDoubleTap"
                     NavigationMode="Cell" />
xml
<dataGrid:SfDataGrid x:Name="sfDataGrid"
                     ItemsSource="{Binding Orders}"
                     AllowEditing="True"
                     EditTrigger="OnDoubleTap"
                     NavigationMode="Cell" />

Pattern 5: Add Summaries

模式5:添加汇总

xml
<dataGrid:SfDataGrid x:Name="sfDataGrid"
                     ItemsSource="{Binding Orders}"
                     ShowRowHeader="True">
    <dataGrid:SfDataGrid.TableSummaryRows>
        <dataGrid:GridTableSummaryRow ShowSummaryInRow="False">
            <dataGrid:GridTableSummaryRow.SummaryColumns>
                <dataGrid:GridSummaryColumn Name="TotalSum"
                                            MappingName="Total"
                                            SummaryType="DoubleAggregate"
                                            Format="'Total: {Sum:C}'" />
                <dataGrid:GridSummaryColumn Name="OrderCount"
                                            MappingName="OrderID"
                                            SummaryType="CountAggregate"
                                            Format="'Count: {Count}'" />
            </dataGrid:GridTableSummaryRow.SummaryColumns>
        </dataGrid:GridTableSummaryRow>
    </dataGrid:SfDataGrid.TableSummaryRows>
</dataGrid:SfDataGrid>
xml
<dataGrid:SfDataGrid x:Name="sfDataGrid"
                     ItemsSource="{Binding Orders}"
                     ShowRowHeader="True">
    <dataGrid:SfDataGrid.TableSummaryRows>
        <dataGrid:GridTableSummaryRow ShowSummaryInRow="False">
            <dataGrid:GridTableSummaryRow.SummaryColumns>
                <dataGrid:GridSummaryColumn Name="TotalSum"
                                            MappingName="Total"
                                            SummaryType="DoubleAggregate"
                                            Format="'Total: {Sum:C}'" />
                <dataGrid:GridSummaryColumn Name="OrderCount"
                                            MappingName="OrderID"
                                            SummaryType="CountAggregate"
                                            Format="'Count: {Count}'" />
            </dataGrid:GridTableSummaryRow.SummaryColumns>
        </dataGrid:GridTableSummaryRow>
    </dataGrid:SfDataGrid.TableSummaryRows>
</dataGrid:SfDataGrid>

Key Properties

核心属性

PropertyTypeDescription
ItemsSource
object
Data source for the grid (IEnumerable)
AutoGenerateColumns
bool
Auto-create columns from data source properties
Columns
Columns
Collection of manually defined columns
AllowSorting
bool
Enable/disable sorting (default: false)
AllowFiltering
bool
Enable/disable filtering (default: false)
AllowGrouping
bool
Enable/disable grouping (default: false)
AllowEditing
bool
Enable/disable editing (default: false)
SelectionMode
GridSelectionMode
Single, Multiple, Extended, None
SelectionUnit
GridSelectionUnit
Row or Cell
NavigationMode
NavigationMode
Cell or Row navigation
ColumnWidthMode
ColumnWidthMode
None, Star, Auto, SizeToCells, SizeToHeader, AutoLastColumnFill, AutoWithLastColumnFill
ShowGroupDropArea
bool
Show drag-and-drop area for grouping
FilterRowPosition
FilterRowPosition
FixedTop, Top, Bottom
属性类型描述
ItemsSource
object
网格的数据源(IEnumerable类型)
AutoGenerateColumns
bool
是否从数据源属性自动创建列
Columns
Columns
手动定义的列集合
AllowSorting
bool
启用/禁用排序(默认:false)
AllowFiltering
bool
启用/禁用筛选(默认:false)
AllowGrouping
bool
启用/禁用分组(默认:false)
AllowEditing
bool
启用/禁用编辑(默认:false)
SelectionMode
GridSelectionMode
单选、多选、扩展选择、无选择
SelectionUnit
GridSelectionUnit
选择单位:行或单元格
NavigationMode
NavigationMode
导航模式:单元格或行导航
ColumnWidthMode
ColumnWidthMode
None、Star、Auto、SizeToCells、SizeToHeader、AutoLastColumnFill、AutoWithLastColumnFill
ShowGroupDropArea
bool
是否展示分组拖拽区域
FilterRowPosition
FilterRowPosition
筛选行位置:FixedTop、Top、Bottom

Common Use Cases

常见使用场景

Enterprise Data Entry Application

企业级数据录入应用

  • Enable editing, validation, and CRUD operations
  • Use batch editing mode for efficiency
  • Implement SelectedItems binding for bulk operations
  • Add table summaries for data insights
  • 启用编辑、校验和CRUD操作
  • 使用批量编辑模式提升效率
  • 实现SelectedItems绑定以支持批量操作
  • 添加表格汇总以提供数据洞察

Data Analysis Dashboard

数据分析看板

  • Enable sorting, filtering, and grouping
  • Add summaries at table and group levels
  • Use conditional styling to highlight key data
  • Implement export to Excel for reporting
  • 启用排序、筛选和分组
  • 在表格和分组层级添加汇总
  • 使用条件样式高亮关键数据
  • 实现Excel导出用于报表生成

Master-Details Data Viewer

主从数据查看器

  • Configure DetailsViewDefinition for nested data
  • Use hierarchical data binding
  • Enable expand/collapse for details
  • Style master and details rows differently
  • 为嵌套数据配置DetailsViewDefinition
  • 使用层级数据绑定
  • 支持详情的展开/折叠
  • 为主行和详情行设置不同样式

Large Dataset Browser (100K+ rows)

大数据集浏览器(10万+行)

  • Enable data virtualization
  • Disable features not needed (grouping, summaries)
  • Use frozen columns for important data
  • Implement incremental loading
  • 启用数据虚拟化
  • 关闭不需要的功能(分组、汇总)
  • 冻结重要列
  • 实现增量加载

Transaction Management System

交易管理系统

  • Enable row drag-and-drop for prioritization
  • Use unbound rows for totals and summary info
  • Implement real-time updates with ObservableCollection
  • Add validation rules for data integrity
  • 启用行拖拽以调整优先级
  • 使用未绑定行展示合计和汇总信息
  • 用ObservableCollection实现实时更新
  • 添加校验规则保证数据完整性

Integration with MVVM

与MVVM集成

csharp
// ViewModel
public class OrderViewModel : INotifyPropertyChanged
{
    private ObservableCollection<Order> orders;
    private Order selectedOrder;
    
    public ObservableCollection<Order> Orders
    {
        get => orders;
        set { orders = value; OnPropertyChanged(); }
    }
    
    public Order SelectedOrder
    {
        get => selectedOrder;
        set { selectedOrder = value; OnPropertyChanged(); }
    }
    
    public ICommand DeleteCommand { get; }
    public ICommand ExportCommand { get; }
}
xml
<!-- View -->
<dataGrid:SfDataGrid ItemsSource="{Binding Orders}"
                     SelectedItem="{Binding SelectedOrder, Mode=TwoWay}" />
csharp
// ViewModel
public class OrderViewModel : INotifyPropertyChanged
{
    private ObservableCollection<Order> orders;
    private Order selectedOrder;
    
    public ObservableCollection<Order> Orders
    {
        get => orders;
        set { orders = value; OnPropertyChanged(); }
    }
    
    public Order SelectedOrder
    {
        get => selectedOrder;
        set { selectedOrder = value; OnPropertyChanged(); }
    }
    
    public ICommand DeleteCommand { get; }
    public ICommand ExportCommand { get; }
}
xml
<!-- View -->
<dataGrid:SfDataGrid ItemsSource="{Binding Orders}"
                     SelectedItem="{Binding SelectedOrder, Mode=TwoWay}" />

Performance Tips

性能优化建议

  1. Use ObservableCollection for automatic UI updates instead of List<T>
  2. Set AutoGenerateColumns="False" and define columns manually when possible
  3. Enable virtualization (enabled by default, don't disable unless needed)
  4. Freeze essential columns to improve horizontal scrolling performance
  5. Use ColumnWidthMode="None" for static column widths when data size is known
  6. Limit grouping levels to 2-3 for better performance
  7. Use filtering instead of grouping for very large datasets (100K+)
  8. Dispose the grid in Page.Unloaded event
  1. 使用ObservableCollection 实现自动UI更新,而不是List<T>
  2. 尽可能设置
    AutoGenerateColumns="False"
    手动定义列
  3. 启用虚拟化(默认启用,除非必要不要关闭)
  4. 冻结核心列 提升横向滚动性能
  5. 当数据量已知时使用
    ColumnWidthMode="None"
    设置静态列宽
  6. 将分组层级限制在2-3级以获得更好性能
  7. 对于超大数据集(10万+行)优先使用筛选而不是分组
  8. 在Page.Unloaded事件中释放网格资源

Troubleshooting

问题排查

Data not displaying:
  • Verify
    ItemsSource
    is bound correctly
  • Check properties have public getters
  • Ensure
    DataContext
    is set if using binding
Editing not working:
  • Set
    AllowEditing="True"
  • Set
    NavigationMode="Cell"
  • Verify column has
    AllowEditing="True"
    (inherited from grid if not set)
Poor performance with large datasets:
  • Verify virtualization is enabled (default)
  • Reduce number of columns
  • Use
    ColumnWidthMode="None"
    instead of Auto
  • Consider data pagination for 500K+ rows
Sorting/Filtering not working:
  • Set
    AllowSorting="True"
    and/or
    AllowFiltering="True"
  • Verify data source implements IEnumerable
  • Check if column has these disabled individually
数据不显示:
  • 确认
    ItemsSource
    绑定正确
  • 检查属性是否有公共getter
  • 如果使用绑定,确保
    DataContext
    已设置
编辑功能不生效:
  • 设置
    AllowEditing="True"
  • 设置
    NavigationMode="Cell"
  • 确认对应列的
    AllowEditing="True"
    (未单独设置时会继承网格的配置)
大数据集下性能差:
  • 确认虚拟化已启用(默认开启)
  • 减少列的数量
  • 使用
    ColumnWidthMode="None"
    代替Auto
  • 50万+行数据可以考虑分页
排序/筛选不生效:
  • 设置
    AllowSorting="True"
    和/或
    AllowFiltering="True"
  • 确认数据源实现了IEnumerable接口
  • 检查对应列是否单独禁用了这些功能

Related Components

相关组件

  • TreeGrid: For hierarchical tree data
  • PivotGrid: For OLAP and pivot table scenarios
  • PropertyGrid: For editing object properties
  • TreeGrid: 用于层级树状数据展示
  • PivotGrid: 用于OLAP和数据透视表场景
  • PropertyGrid: 用于编辑对象属性