> 技术文档 > WinUI3入门1:使用DataGrid控件显示表格_winui3 datagrid

WinUI3入门1:使用DataGrid控件显示表格_winui3 datagrid

初级代码游戏的专栏介绍与文章目录-CSDN博客

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。

源码指引:github源码指引_初级代码游戏的博客-CSDN博客


        WinUI显示表格要用到社区工具包的DataGrid控件。

        这个表格是非常接近传统上的表格的。列头可以鼠标改变列宽度。上下左右方向键改变选中的单元格。

一、创建原始WinUI3项目

        编译运行就是个按钮:

二、nuget引入社区工具包

        搜一下这个CommunityToolkit.WinUI.UI.Controls.DataGrid:

        安装好就可以用了。

        xaml里引用名字空间:

xmlns:controls=\"using:CommunityToolkit.WinUI.UI.Controls\"

         后面就可以用“controls:DataGrid”来使用DataGrid了。

三、设置DataGrid

        在MainWindow.xaml里面添加DataGrid:

        添加在Button后面好了。因为没有设置数据,所以运行起来只能得到一个竖线

        如果不设置边框和背景色连竖线都没有。

        数据可以在xaml通过ItemsSource来绑定,也可以通过代码动态设置。

四、动态设置ItemsSource

        修改MainWindow.xaml.cs,定义数据源对象:

public class Data{public String Data1 { get; set; }public int Data2 { get; set; }public String Data3 { get; set; }public Boolean Bool1 { get; set; }public Data(String str, int n,String str2, Boolean b){this.Data1 = str;this.Data2 = n;this.Data3 = str2;this.Bool1 = b;}public static List Datas(){return new List(new Data[4] {new Data(\"a\", 1,\"aaa\",false),new Data(\"b\",2,\"bbb\",false),new Data(\"c\", 3,\"ccc\",true),new Data(\"d\", 4,\"ddd\",true)});}}public List datas = Data.Datas();

        重点是得到一个List对象。注意成员必须是属性,否则是没法显示出来的。

        在按钮事件添加设置数据源的代码:

 private void myButton_Click(object sender, RoutedEventArgs e) { myButton.Content = \"Clicked\";dataGrid.ItemsSource = datas;}

        运行程序看效果:

        点击按钮之后表格显示了出来,注意边框、背景色、横线、竖线都是设置过的。用鼠标改变列宽:

         支持多选(按行),也可以用方向键改变选中单元格:

        双击编辑:

        可以吧?


警告:2025.6.20,发现release版根本无法运行,itemsource设置时异常。win10、win11、VS都是最新版。谨慎入坑。2025.6.23,找到原因:代码裁剪错误,关闭裁剪可规避此问题。


(这里是文档结束)