当前位置: 首页 > news >正文

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;}

        运行程序看效果:

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

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

        双击编辑:

        可以吧?


(这里是文档结束) 

相关文章:

  • 打印机共享问题一键解决,附带设置维护工具
  • 会计-收入-3-关于特定交易的会计处理
  • Power Query动态追加查询(对文件夹下文件汇总)
  • SSM框架实现学生管理系统的需求分析与设计详解
  • 安科瑞亮相2025 SNEC国际太阳能光伏与智慧能源展
  • Mac电脑通过 IntelliJ IDEA 远程连接 MySQL 的详细教程
  • 一个模板元编程示例
  • 亚马逊Woot秒杀:引爆销量
  • Day 48
  • c++动态规划4——环形动态规划
  • 岛屿周长问题的三种解法:直接计数法、数学计算法与深度优先搜索
  • redis-7.4.4使用
  • 论索引影响性能的一面④ 索引失踪之谜【上】
  • 学习日记-day29-6.13
  • python+django/flask成都奥科厨具厂产品在线销售系统
  • Python学习(9) ----- Python的Flask
  • bytes转string
  • icg真的只能用latch不能用Flip-flop吗
  • 洛谷自己创建的一个小比赛【c++】
  • PCB设计教程【大师篇】stm32开发板PCB整体布局
  • 把自己做的网站开放到外网/外贸网络推广怎么做
  • 网站优化怎么做效果才好/网站seo课设
  • 网站后台无法审核/线上推广网络公司
  • 做的最好的视频网站/付费推广有几种方式
  • 哪个商城网站建设好/网站推广的途径和方法
  • 建建建设网站/搜索引擎营销的优势和劣势