Net跨平台UI框架Avalonia入门-DataGrid的使用

2023-11-17

Avalonia中的DataGrid的使用

DataGrid 数据表格是客户端UI中很重要的一个控件,Avalonia中的DataGrid是单独一个包Avalonia.Controls.DataGrid,要使用DataGrid,需要另外在Nuget中按这个包,下面介绍一下DataGrid的安装和使用

DataGrid包安装

DataGrid的包需要在Nuget中安装,直接搜索Avalonia.Controls.DataGrid安装即可(V11正式版之前)

在这里插入图片描述

版本选择,与Avalonia框架版本一致

安装的时候需要注意Avalonia.Controls.DataGrid包的版本要跟Avalonia框架版本一致,否则可能无法安装成功。

Avalonia框架版本就是创建项目选择的“Avalonia Version”一般为0.10.18或者11.0.0-preview4(2023年5月22日22:31:23)

v11版本

v11版本更新之后,使用avalonia框架创建的项目,依赖包中自动带了DataGrid包,不需要另外安装

在这里插入图片描述

Avalonia框架版本也可以在“依赖项→包”中查看

在这里插入图片描述
在这里插入图片描述

如果使用的是预览版,在nuget包管理器中,需要勾选搜索框右侧的“包括预发行版”,才能看到preview的版本。

在这里插入图片描述

DataGrid的使用

样式引用

在App.axaml(或者在其他使用的界面上引用)中引用DataGrid的样式文件

必须引用样式文件,否则不会显示DataGrid

<!--下面样式文件二选一-->
<StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml"/>
<StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Simple.xaml"/>

在这里插入图片描述

Fluent.xaml的效果:

样式效果比较全
在这里插入图片描述

Simple.xaml的效果:

比较简单
在这里插入图片描述

使用DataGrid

DataGrid的使用和WPF一样通过DataGrid.Columns编写列

与WPF区别:

  1. 绑定属性是Items
  2. 并且很多属性需要自己赋值进行初始化
    1. 例如需要拖拽列头进行调整宽度,需要增加CanUserResizeColumns="True"
    2. 需要拖拽列头进行列的顺序调整,需要自己添加CanUserReorderColumns="True"
 <DataGrid Name="MyDG" >
            <DataGrid.Columns>
                <DataGridTextColumn
                    Width="1*"
                    Binding="{Binding Id}"
                    Header="序号" />
                <DataGridTextColumn
                    Width="1*"
                    Binding="{Binding Name}"
                    Header="姓名" />
                <DataGridTextColumn
                    Width="1*"
                    Binding="{Binding Description}"
                    Header="姓名" />
            </DataGrid.Columns>
        </DataGrid>

c#

  //后台绑定
  List<User> users = new List<User>();
  users.Add(new User() { Id=1,Name="张一",Description="1111111"});
  users.Add(new User() { Id=2,Name="张二",Description="2222222"});
  MyDG.Items = users;

显示效果:

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Net跨平台UI框架Avalonia入门-DataGrid的使用 的相关文章

  • 使用 std::packaged_task/std::exception_ptr 时,线程清理程序报告数据争用

    我遇到了线程清理程序 TSan 的一些问题 抱怨某些生产代码中的数据争用 其中 std packaged task 通过将它们包装在 std function 中而移交给调度程序线程 对于这个问题 我简化了它在生产中的作用 同时触发 TSa
  • 如何在c++中读取pcap文件来获取数据包信息?

    我想用 C 编写一个程序来读取 pcap 文件并获取数据包的信息 例如 len sourc ip flags 等 现在我找到了如下代码 我认为它会帮助我获取信息 但是我有一些疑问 首先我想知道应该将哪个库添加到我的程序中 然后什么是 pca
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • WPF - 关闭 App.g.cs 中 Main 的自动生成

    我正在学习WPF 我想在 App xaml cs 中提供我自己的 Main 方法 而不是在 App g cs 中为我生成一个方法 然而 我不断遇到冲突 因为我还没有找到如何阻止生成额外的 Main 我的项目文件或其他地方是否有控制此设置的设
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • C# HashSet 只读解决方法

    这是示例代码 static class Store private static List
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 使用 C# 读取 Soap 消息

  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • C++ 条件编译

    我有以下代码片段 ifdef DO LOG define log p record p else define log p endif void record char data 现在如果我打电话log hello world 在我的代码中

随机推荐

  • SpringBoot中如何在一个模块中引入另一个模块

    SpringBoot中如何在一个模块中引入另一个模块 实例 1 springBoot中有cms dev项目 下面有ai模块和dms模块 而且ai模块中没有启动类 需要将ai引入到dms模块中 解决方案 1 在需要调用的模块的pom文件中添加
  • 关于ElasticSearch的_type类型

    type是es早期版本的设计缺陷 在5 x以前的版本里边 一个index下面是支持多个type的 在6 x的版本里改为一个index只支持一个type type可以自定义 7 x的版本所有的type默认为 doc 自定义type也能用 但是
  • 华兴数控g71外圆循环编程_数控车床G71,G70编程实例(一)

    正明天车也要编 先编好 大多数产品都可以用G71开粗 G70精车 新程序开头一般要取消很多暗中存在的指令 我们家机床就是 据说有一次某新同事没在程序前加G97 导致开机转速过高 产品就飞了出来 把门都砸坏了 人没事 大吉大利 别说后面一句
  • 景联文科技牵头制定的《信息技术 可扩展的生物特征识别数据交换格式 第4部分:指纹图像数据》国家标准启动会暨研讨会在杭州顺利召开

    2023年9月19日 由杭州景联文科技有限公司牵头制定的 信息技术 可扩展的生物特征识别数据交换格式 第4部分 指纹图像数据 国家标准启动会暨起草组工作会议在杭州顺利召开 来自中国电子技术标准化研究院 熵基科技 名光微电子科技 广州麦仑信息
  • RPC实践(四)Dubbo实践

    Dubbo是一款重要的RPC框架 它是Alibaba开源的分布式服务框架 它主要特点 提供了注册中心来进行服务的管理 支持zookeeper redis等方式来实现注册中心 Dubbo按照分层的方式来架构 使用这种方式可以使各个层之间解耦合
  • Ubuntu18.04/20.04 Mendeleydesktop 安装及问题解决

    文章目录 安装 Issue Reference 安装 下载最新版本 Download Mendeley Desktop for Ubuntu Debian 32 Bit Download Mendeley Desktop for Ubunt
  • docker入门笔记(基础版)

    镜像命令 查看docker概要信息 docker info 列出本地主机上的镜像 docker images docker images a 查看远程库的镜像 docker search xx 下载镜像 在这里插入代码片 docker pu
  • 服务器无响应(已断开),服务器无响应 已断开(服务器无响应)

    服务器无响应是怎么回事 首先 检查其他人的电脑或您的手机等设备是否能正常连接到网络并打开网站 如果其他设备无法打开 当然 您的网络有问题 否则 你的电脑有问题 这时 先尝试重启电脑电脑重启电脑是不够的 可以尝试自己修复一些免费的DNS地址
  • 深度学习经典网络解析图像分类篇(一):LeNet-5

    深度学习经典网络解析图像分类篇 一 LeNet 5 1 背景介绍 2 LeNet 5网络架构 2 1输入层 2 2第一层 卷积层C1 2 3第二层 池化层S2 下采样 2 3第三层 卷积层C3 第四层 池化层S4 第五层 卷积层C5 第六层
  • 无序(未排序)数组二分查找

    二分查找也称折半查找 Binary Search 它是一种效率较高的查找方法 但是 折半查找要求线性表必须采用顺序存储结构 而且表中元素按关键字有序排列 但是对于无序数组 我们可以先排序在二分 但还有一种技巧就是结合快排的思想 即每次选择一
  • 电脑提示msvcp110.dll是什么意思?msvcp110.dll丢失修复办法分享

    当我们使用电脑时 有时候会出现一些错误提示 其中就包括了 msvcp110 dll 丢失 的提示 那么 这个提示是什么意思呢 电脑提示找不到msvcr110 dll怎么办 我们在使用电脑的时候 总是会遇到很多的电脑难题 当我们在遇到了缺少m
  • CMake中while/continue/break的使用

    CMake中的while命令用于在条件为true时评估 evaluate 一组命令 其格式如下 while
  • 使用Numpy创建三维矩阵

    1 创建语句 创建形式有两种 1 随机数形式 np random random x y z 2 0或1形式 np ones x y z np zeros x y z 2 x y z 的含义 如果把x y z想做一个空间直角坐标系 那么x就相
  • SpringCloud环境搭建及入门案例

    技术选型 Maven 3 8 4 SpringBoot 2 7 8 SpringCloud 2021 0 4 SpringCloudAlibaba 2022 0 1 0 Nacos 2 1 1 Sentinel 1 8 5 模块设计 父工程
  • iptables上如何封IP

    一 封单个IP 1 封锁单个ip iptables I INPUT s IP j DROP root node1 iptables I INPUT s 192 168 1 11 j DROP root node1 iptables L Ch
  • 内网渗透之AccessToken窃取与利用

    文章目录 令牌 Token AccessToken的窃取与利用 1 程序 incognito exe 2 MSF下的incognito模块 3 Invoke TokenManipulation ps1脚本 MSF实战假冒令牌提权 令牌 To
  • MES管理系统的哪些优势对企业帮助比较大

    随着全球制造业的快速发展 MES制造执行系统已成为企业生产管理的重要工具 MES管理系统解决方案集成了企业生产流程中的各个环节 包括计划 调度 质量 设备等 为企业提供了全面的生产管理解决方案 制造企业MES系统的优势颇多 其中对企业帮助比
  • Nginx反向代理配置

    首先配置反向代理前已经要把之前配置过的伪静态删除掉 不然保存的时候报错以下是反向代理的完整配置 请注意其中的端口号 8000 当前这个端口号就是 config swoole php文件中的server port配置中的端口号 locatio
  • Admin监控&Sleuth链路追踪 &skywalking链路追踪

    Admin监控 Sleuth链路追踪 skywalking Sleuth Zipkin 一 Sleuth Zipkin介绍 二 搭建环境 三 Sleuth入门操作 四 Zipkin搭建及操作 五 RabbitMQ方式发送信息 六 Elast
  • Net跨平台UI框架Avalonia入门-DataGrid的使用

    Avalonia中的DataGrid的使用 DataGrid 数据表格是客户端UI中很重要的一个控件 Avalonia中的DataGrid是单独一个包Avalonia Controls DataGrid 要使用DataGrid 需要另外在N