{"id":25265792,"url":"https://github.com/w-ahmad/WinUI.TableView","last_synced_at":"2025-10-27T04:31:11.855Z","repository":{"id":220019549,"uuid":"749550387","full_name":"w-ahmad/WinUI.TableView","owner":"w-ahmad","description":"A light weight TableView/DataGrid for WinUI. ","archived":false,"fork":false,"pushed_at":"2025-02-08T19:32:38.000Z","size":634,"stargazers_count":145,"open_issues_count":20,"forks_count":12,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-02-09T20:11:15.610Z","etag":null,"topics":["datagrid","tableview","winappsdk","windowsappsdk","winui","winui3"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/w-ahmad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-28T22:14:14.000Z","updated_at":"2025-02-08T13:37:00.000Z","dependencies_parsed_at":"2024-05-19T13:29:37.899Z","dependency_job_id":"4fab3e25-3742-42f9-b96e-f975d01a758b","html_url":"https://github.com/w-ahmad/WinUI.TableView","commit_stats":{"total_commits":119,"total_committers":3,"mean_commits":"39.666666666666664","dds":"0.025210084033613467","last_synced_commit":"28b04c87d00b31a427be63ffdc060fc44725a2a2"},"previous_names":["w-ahmad/winui3.tableview","w-ahmad/winui.tableview"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w-ahmad%2FWinUI.TableView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w-ahmad%2FWinUI.TableView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w-ahmad%2FWinUI.TableView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w-ahmad%2FWinUI.TableView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/w-ahmad","download_url":"https://codeload.github.com/w-ahmad/WinUI.TableView/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238437070,"owners_count":19472330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datagrid","tableview","winappsdk","windowsappsdk","winui","winui3"],"created_at":"2025-02-12T08:22:04.435Z","updated_at":"2025-10-27T04:31:11.842Z","avatar_url":"https://github.com/w-ahmad.png","language":"C#","readme":"\n# WinUI.TableView\n\n**WinUI.TableView** is a lightweight and fast data grid control made for [WinUI](https://learn.microsoft.com/en-us/windows/apps/winui/winui3) apps and now supports the [Uno Platform](https://platform.uno/docs/index.html). It is easy to use, and capable of handling large numbers of items with a focus on performance. It's derived from `ListView` so you will experience fluent look and feel in your project. It comes with all the essential features you need, plus extras like an Excel like column filter, options buttons (for columns and the TableView) and easy data export.\n\n[![ci-build](https://github.com/w-ahmad/WinUI.TableView/actions/workflows/ci-build.yml/badge.svg)](https://github.com/w-ahmad/WinUI.TableView/actions/workflows/ci-build.yml)\n[![cd-build](https://github.com/w-ahmad/WinUI.TableView/actions/workflows/cd-build.yml/badge.svg)](https://github.com/w-ahmad/WinUI.TableView/actions/workflows/cd-build.yml)\n[![nuget](https://img.shields.io/nuget/v/WinUI.TableView)](https://www.nuget.org/packages/WinUI.TableView/)\n[![nuget](https://img.shields.io/nuget/dt/WinUI.TableView)](https://www.nuget.org/packages/WinUI.TableView/)\n\n### [Samples App](https://github.com/w-ahmad/WinUI.TableView.SampleApp)\n\nExplore the interactive `WinUI.TableView` samples with code snippets in a Samples App on Microsoft Store or Uno Platorm WASM:\n\n\u003ca href=\"https://apps.microsoft.com/detail/9ntgb6lmjzx3?referrer=appbadge\u0026mode=direct\"\u003e\n  \u003cimg src=\"https://get.microsoft.com/images/en-us%20dark.svg\" width=\"200\"/\u003e\n\u003c/a\u003e\n\n\u003cbr\u003e\n\n\u003ca href=\"https://tableview.samples.w-ahmad.dev/\"\u003e\n   \u003cimg align=center width=\"18%\" src=\"https://raw.githubusercontent.com/unoplatform/styleguide/master/logo/uno-platform-logo-with-text.png\" /\u003e\n\u003c/a\u003e\n\n####\n\n![WinUI TableView SampleApp](https://raw.githubusercontent.com/w-ahmad/WinUI.TableView.SampleApp/main/WinUI.TableView%20SampleApp.gif)\n\n## Features\n\n- **Auto-generating Columns**: Automatically generate columns based on the data source.\n- **Individual cell selection**: You can select any cell for the ease of access and better editing experience.\n- **Copy row or cell content**: TableView allows you to copy rows or cells content, with the option to include or exclude column headers.\n- **Editing**: Modify cell content directly within the TableView by double tapping on a cell.\n- **Sorting**: Offers built in column sorting.\n- **Excel-like Column Filter**: TableView allows you to filter data within columns with an excel like flyout to enhance data exploration and analysis.\n- **Export functionality**: Built-in export functionality to export data to CSV format. This feature can be enabled by setting the `ShowExportOptions = true`.\n- **Grid Lines**: Display grid lines to improve data visibility and organization.\n- **Localization**: Support for multiple languages to enhance usability for global audiences.\n- **Alternate Row Colors**: Apply alternate row coloring for better readability and aesthetics.\n- **Cell \u0026 Row Context Flyout**: Provides context flyouts for cells and rows to allow quick actions.\n\n## Uno Platform Support\n\n`WinUI.TableView` is compatible with the Uno Platform(WASM, Desktop), enabling you to use the control across multiple platforms.\nTry the [Uno WASM Sample App](https://github.com/w-ahmad/WinUI.TableView.SampleApp) here 👉 https://tableview.samples.w-ahmad.dev/\n\n## Getting Started\n\n### 1. Create a New WinUI3 or Uno Project\n\nIf you don't already have a WinUI 3 project or Uno prject, create one in Visual Studio.\n\n### 2: Install NuGet Package\nInatall `WinUI.TableView` NuGet package to your app with your preferred method. Here is the one using NuGet Package Manager:\n\n```bash\nInstall-Package WinUI.TableView\n```\n### 3. Add `WinUI.TableView` to Your XAML\n\nIn your `MainWindow.xaml`, add the `WinUI.TableView` control:\n\n```xaml\n\u003cWindow\n    x:Class=\"App1.MainWindow\"\n    xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n    xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\"\n    xmlns:local=\"using:App1\"\n    xmlns:d=\"http://schemas.microsoft.com/expression/blend/2008\"\n    xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\"\n    mc:Ignorable=\"d\"\n    xmlns:tv=\"using:WinUI.TableView\"\u003e\n\n    \u003cGrid\u003e\n        \u003ctv:TableView x:Name=\"MyTableView\"\n            ItemsSource=\"{x:Bind ViewModel.Items}\" /\u003e\n    \u003c/Grid\u003e\n\u003c/Window\u003e\n```\n\n### 4. Bind Data to `TableView`\n\nIn your `MainPage.xaml.cs`, set up the data context and bind data to the `TableView`:\n\n```csharp\npublic sealed partial class MainWindow : Window\n{\n    public MainViewModel ViewModel { get; } = new MainViewModel();\n\n    public MainWindow()\n    {\n        this.InitializeComponent();\n    }\n}\n```\n\nCreate a simple `MainViewModel` with a collection of items to display:\n\n```csharp\npublic class MainViewModel\n{\n    public ObservableCollection\u003cItem\u003e Items { get; set; }\n\n    public MainViewModel()\n    {\n        Items = new ObservableCollection\u003cItem\u003e\n        {\n            new Item { Name = \"Item 1\", Price = 10.0, Quantity = 1 },\n            new Item { Name = \"Item 2\", Price = 15.0, Quantity = 2 },\n            new Item { Name = \"Item 3\", Price = 20.0, Quantity = 3 },\n            // Add more items here\n        };\n    }\n}\n\npublic class Item : INotifyPropertyChanged\n{\n    private string _name;\n    private double _price;\n    private int _quantity;\n\n    public string Name\n    {\n        get =\u003e _name;\n        set\n        {\n            _name = value;\n            OnPropertyChanged(nameof(Name));\n        }\n    }\n    public double Price\n    {\n        get =\u003e _price;\n        set\n        {\n            _price = value;\n            OnPropertyChanged(nameof(Price));\n        }\n    }\n    public int Quantity\n    {\n        get =\u003e _quantity;\n        set\n        {\n            _quantity = value;\n            OnPropertyChanged(nameof(Quantity));\n        }\n    }\n\n    private void OnPropertyChanged(string propertyName)\n    {\n        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));\n    }\n\n    public event PropertyChangedEventHandler PropertyChanged;\n}\n```\n\n### 5. Run Your Application\n\nBuild and run your application. You should see the `TableView` populated with the rows and cells from your `ViewModel`.\n\n## Customization\n\nYou can customize the appearance and behavior of the `TableView` by modifying its properties, templates, and styles. For example:\n\n- **Column Customization**: Define custom columns based on data types.\n- **Is ReadOnly**: You can make any column or the TableView itself read only.\n- **Sorting and Filtering**: Enable sorting and filtering on specific columns or for the all columns.\n- **Corner Button Mode**: Use the `CornerButtonMode` property to configure the corner button's behavior. You can select from:\n  - `None`: No corner button.\n  - `SelectAll`: Displays a \"Select All\" button.\n  - `Options`: Displays an options menu.\n- **Column Header and Cell Styles**: Customize the styles for column headers and cells to match your application's theme or specific design requirements.\n\n```xml\n\u003ctv:TableView x:Name=\"MyTableView\"\n              ItemsSource=\"{x:Bind ViewModel.Items}\"\n              AutoGenerateColumns=\"False\"\n              xmlns:tv=\"using:WinUI.TableView\"\u003e\n    \u003ctv:TableView.Columns\u003e\n        \u003ctv:TableViewTextColumn Header=\"Name\" Binding=\"{Binding Name}\" /\u003e\n        \u003ctv:TableViewNumberColumn Header=\"Price\" Binding=\"{Binding Price}\" /\u003e\n        \u003ctv:TableViewTemplateColumn Header=\"Quantity\"\u003e\n            \u003ctv:TableViewTemplateColumn.CellTemplate\u003e\n                \u003cDataTemplate\u003e\n                    \u003cTextBlock Text=\"{Binding Quantity}\" /\u003e\n                \u003c/DataTemplate\u003e\n            \u003c/tv:TableViewTemplateColumn.CellTemplate\u003e\n            \u003ctv:TableViewTemplateColumn.EditingTemplate\u003e\n                \u003cDataTemplate\u003e\n                    \u003cNumberBox Value=\"{Binding Quantity, Mode=TwoWay}\" /\u003e\n                \u003c/DataTemplate\u003e\n            \u003c/tv:TableViewTemplateColumn.EditingTemplate\u003e\n        \u003c/tv:TableViewTemplateColumn\u003e\n    \u003c/tv:TableView.Columns\u003e\n\u003c/tv:TableView\u003e\n```\n\n### Available Column Types\n1. TableViewTextColumn\n2. TableViewCheckBoxColumn\n3. TableViewComboBoxColumn\n4. TableViewNumberColumn\n5. TableViewToggleSwitchColumn\n6. TableViewTemplateColumn\n7. TableViewTimeColumn\n8. TableViewDateColumn\n\n## Contributing\n\nContributions are welcome from the community! If you find any issues or have suggestions for improvements, please submit them through the GitHub issue tracker or consider making a pull request.\n\n#### Contributors\n[![ci-build](https://contrib.rocks/image?repo=w-ahmad/WinUI.TableView)](https://github.com/w-ahmad/WinUI.TableView/graphs/contributors)\n\n## Support WinUI.TableView\n\nIf this project saves you time or adds value to your work, please consider supporting its continued development.\n\nYour sponsorship helps cover development time, testing, and future improvements.\n\n👉 [Become a supporter on Patreon](https://patreon.com/wahmad) \n\nEvery contribution makes a difference — thank you!\n## License\n\nThis project is licensed under the [MIT License](https://github.com/w-ahmad/WinUI.TableView?tab=MIT-1-ov-file).\n","funding_links":["https://patreon.com/wahmad"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw-ahmad%2FWinUI.TableView","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fw-ahmad%2FWinUI.TableView","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw-ahmad%2FWinUI.TableView/lists"}