WinUI:使用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:
<controls:DataGridx:Name="dataGrid"Height="600"Margin="12"Background="LightGray"BorderBrush="Black"BorderThickness="1"GridLinesVisibility="All"HorizontalGridLinesBrush="Blue"VerticalGridLinesBrush="Green"AutoGenerateColumns="True" />
添加在Button后面好了。因为没有设置数据,所以运行起来只能得到一个竖线:
如果不设置边框和背景色连竖线都没有。
数据可以通过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<Data> Datas(){return new List<Data>(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<Data> datas = Data.Datas();
重点是得到一个List对象。
在按钮事件添加设置数据源的代码:
private void myButton_Click(object sender, RoutedEventArgs e){myButton.Content = "Clicked";dataGrid.ItemsSource = datas;}
运行程序看效果:
点击按钮之后表格显示了出来,注意边框、背景色、横线、竖线都是设置过的。用鼠标改变列宽:
支持多选(按行),也可以用方向键改变选中单元格:
双击编辑:
可以吧?
(这里是文档结束)