Table of Contents

WinUI.TableView

WinUI.TableView is a lightweight and fast data grid control for WinUI 3 apps with support for the Uno Platform. It is derived from ListView, giving it a Fluent Design look and feel, and is designed to handle large datasets efficiently.

Use WinUI.TableView when you need a tabular data display with sorting, filtering, editing, row details, and clipboard support in a WinUI 3 or Uno Platform application.

WinUI.TableView overview

Quick start

Install the NuGet package:

.NET CLI

dotnet add package WinUI.TableView

Or

Package Manager Console

Install-Package WinUI.TableView

Add to your XAML:

<Grid xmlns:tv="using:WinUI.TableView">
    <tv:TableView ItemsSource="{x:Bind Products}" AutoGenerateColumns="False">
        <tv:TableView.Columns>
            <tv:TableViewTextColumn   Header="Name"     Binding="{Binding Name}" />
            <tv:TableViewNumberColumn Header="Price"    Binding="{Binding Price}" />
            <tv:TableViewCheckBoxColumn Header="In Stock" Binding="{Binding InStock}" />
        </tv:TableView.Columns>
    </tv:TableView>
</Grid>

Add the model and data to your code-behind or view model:

public ObservableCollection<Product> Products { get; } = new()
{
	new Product { Name = "Widget A", Price = 9.99, InStock = true },
	new Product { Name = "Widget B", Price = 24.99, InStock = false },
	new Product { Name = "Widget C", Price = 4.49, InStock = true },
};

public class Product
{
    public string? Name { get; set; }
    public double Price { get; set; }
    public bool InStock { get; set; }
}

Samples App

Explore interactive samples with code snippets in the Samples App on Microsoft Store or Uno Platform WASM:


WinUI TableView SampleApp

Key features

Feature Description
Auto-generating columns Automatically generate columns based on the data source properties
Column types Text, Number, CheckBox, ComboBox, ToggleSwitch, Date, Time, Hyperlink, Template
Sorting Built-in column sorting with sort direction indicators
Filtering Excel-like column filter flyout
Editing Double-tap a cell to edit; full editing lifecycle events
Selection Row, cell, or combined selection modes
Frozen columns Pin columns to the left while the rest scroll
Row details Expandable detail panels per row
Row headers Configurable row header with custom templates
Clipboard Copy and paste rows/cells; customizable content
CSV export Built-in export to CSV
Conditional styling Apply cell styles based on custom predicates
Context flyouts Row-level and cell-level context menus
Styling Grid lines, alternate rows, and custom cell/header styles
Column reordering Drag columns to reorder; configurable per-column
Column sizing Fixed, star, auto, and manual resize modes
Localization Multiple language support
Uno Platform Cross-platform: Windows, macOS, Linux, WASM, iOS, Android

Documentation

Getting started

Migration

Uno Platform support

WinUI.TableView is compatible with the Uno Platform, enabling you to target Windows, macOS, Linux, WebAssembly, iOS, and Android from a single codebase.