Avalonia笔记2 -数据集合类控件

学习笔记:

1.    DataGrid 笔记1中已经记录;

2. ItemsControl 

属性:

ItemsSource:数据源

ItemsControl.ItemTemplate:单项数据模板,内部使用<DataTemplate>

示例:

<ItemsControl Grid.Row="4" ItemsSource="{Binding ItemModels}" ><ItemsControl.ItemTemplate><DataTemplate><Grid><Grid.RowDefinitions ><RowDefinition/><RowDefinition/><RowDefinition/></Grid.RowDefinitions><TextBlock Text="{Binding LastName}"></TextBlock><TextBlock Text="{Binding FirstName}"></TextBlock></Grid></DataTemplate></ItemsControl.ItemTemplate>
</ItemsControl>
    public List<Person> ItemModels { get; set; } = new List<Person>();public MainWindowViewModel(){ItemModels.Add(new Person("eew", "dsjuoj"));ItemModels.Add(new Person("Ne22323ids", "dsjuoj"));ItemModels.Add(new Person("rrrr", "dsjuoj"));}

 水平方向可以根据父元素尺寸自动调整,但垂直方向不可以。

3. ItemsRepeater   具有数据模板和布局模板

需要引用nuget包

<PackageReference Include="Avalonia.Controls.ItemsRepeater" Version="11.0.9" />

属性:

ItemsSource

ItemsRepeater.ItemTemplate

ItemsRepeater.Layout:设置布局的方向,默认垂直

// 该标签内必须设置StackLayout
<ItemsRepeater.Layout><StackLayout Spacing="40" Orientation="Horizontal" />
</ItemsRepeater.Layout>

该标签内必须设置StackLayout。

<ItemsRepeater Grid.Row="5" Grid.RowSpan="3" ItemsSource="{Binding ItemModels}"><ItemsRepeater.Layout><StackLayout Orientation="Horizontal"></StackLayout></ItemsRepeater.Layout><ItemsRepeater.ItemTemplate><DataTemplate><Border Margin="0,10,0,0" CornerRadius="5" BorderBrush="Blue" BorderThickness="1" Padding="5"><StackPanel Orientation="Horizontal"><TextBlock Text="{Binding FirstName}"></TextBlock><TextBlock Margin="5 0" Text="{Binding LastName}"></TextBlock></StackPanel></Border></DataTemplate></ItemsRepeater.ItemTemplate>
</ItemsRepeater>

                     

 4.  ListBox

属性:

Items:数据项集合。只有get属性

SelectedIndex:下标

SelectedItem:单选

SelectedItems: 多选

Selection:一个ISelectionModel对象,具有各种方法来跟踪多个选定项目

SelectionMode:选择模式,值为:Single(单选模式)、Multiple(多选模式)、Toggle(所选项目可以切换,若不启用,则需要用“shift/ctrl”切换)、AlwaysSelected(始终被选择)

ScrollViewer.Horizontal:水平滚动条的可见性,值:Disabled(默认)、Auto、Hidden、Visible。

ScrollViewer.Vertical:垂直滚动条的可见性,值:Disabled(默认)、Auto、Hidden、Visible。

示例:

<ListBox Grid.Row="5" x:Name="animals">
 animals.ItemsSource = new string[] { "cat", "dog", "bird", "tiger", "duck", "chicken" }.OrderBy(x=>x);

 

 5. ComboBox  下拉框

属性:

Items:数据项集合,只读

SelectedIndex

SelectedItem

SelectedItems

AutoScrollToSelectedItem:是否自动滚动到所选择的项

IsDropDownOpen:是否打开下拉

MaxDropDownHeight:下拉最大高度,这是列表部分的实际高度,而不是显示的项目数。

示例:

<ComboBox Grid.Row="5" SelectedIndex="0" MaxDropDownHeight="100" x:Name="ComboBox1" ItemsSource="{Binding ComboxArr}"/>
<Button Grid.Row="6" Content="添加列表" Command="{Binding AddCom}" CommandParameter="123"></Button>
public List<string> ComboBoxList = new List<string>();
public ObservableCollection<string> ComboxArr { get; set; }public MainWindowViewModel()
{ComboBoxList.Add("item1");ComboBoxList.Add("item2");ComboBoxList.Add("item3");ComboBoxList.Add("item4");ComboBoxList.Add("item5");ComboxArr = new ObservableCollection<string>(ComboBoxList.ToArray());
}public void AddCom(string args)
{ComboBoxList.Add(args);ComboxArr = new ObservableCollection<string>(ComboBoxList.ToArray());this.RaisePropertyChanged(nameof(ComboxArr));
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/572135.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux相关命令(1)

1、找出文件夹下包含 “aaa” 同时不包含 “bbb”的文件&#xff0c;然后把他们重新生成一下。要求只能用一行命令。 find ./ -type f -name "*aaa*" ! -name "*bbb*" -exec touch {} \;文件系统操作命令 df&#xff1a;列出文件系统的整体磁盘使用情况 …

(一)Spring Cloud 的认识

1.认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。 1.1.单体架构 单体架构&#xff1a;将业务的所有功能集中在一个项目中开发&#xff0c;打成一个包部署。 单体架构的优缺点如下&am…

C语言例4-15:从键盘输入一个整数,求其绝对值并输出。

代码如下&#xff1a; //从键盘输入一个整数&#xff0c;求其绝对值并输出。 #include<stdio.h> int main(void) {int n;printf("输出一个整数&#xff1a; \n");scanf("%d",&n); //从键盘输入一个整数保存至变量nif(n<0) //…

全国植被类型分布数据

引言 全国植被类型分布数据利用 Landsat 卫星数据&#xff08;Landsat TM&#xff0c;ETM和 OLI&#xff09;完成了长时序的地表覆盖变化检测&#xff0c;并结合变化 检测结果实现了逐区域和逐期的地表覆盖动态更新&#xff0c;30米精细植被类型分布数据&#xff0c;共包含 2…

AI Agent(LLM Agent)入门解读

1. 什么是AI Agent&#xff1f; AI Agent可以理解为一个智能体&#xff0c;包括感知模块、规划决策模块和行动模块&#xff0c;类似于人类的五官、大脑和肢体。它能帮助人类处理复杂的任务&#xff0c;并能根据环境反馈进行学习和调整。 五官可以理解为感知模块&#xff0c;大…

蓝桥-肖恩的排序

目录 题目链接&#xff1a; 思路&#xff1a; 代码&#xff1a; 总结常见的排序写法&#xff1a; 题目链接&#xff1a; 0肖恩的排序 - 蓝桥云课 (lanqiao.cn) 思路&#xff1a; 参考罗老师的思路&#xff1a;&#xff1c;蓝桥杯软件赛&#xff1e;零基础备赛20周--第8周第…

程序员如何兼职赚小钱?

程序员由于有技术和手艺其实兼职赚钱的路子还是挺多的&#xff0c;只要你有足够的时间。 1. 做外包 这是比较传统的方式&#xff0c;甲方在一些众包平台上发布开发任务&#xff0c;你可以抢这个任务&#xff0c;但是价格都比较便宜。 任务比较多的平台: 猪八戒、一品威客、开…

Leetcode70. 爬楼梯(动态规划)

Leetcode原题 Leetcode70. 爬楼梯 标签 记忆化搜索 | 数学 | 动态规划 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f;示例 1&#xff1a;输入&#xff1a;n 2 输出&#xff1a;2 解…

python 中判断文件、目录是否存在的方法

判断目录是否存在并创建目录 一、实现上传文件功能二、判断目录是否存在的办法2.1、使用os模块2.1.1、判断目录是否存在2.1.2、os.makedirs()&#xff1a;递归创建目录 2.2、使用pathlib模块2.2.1、path.exist()判断目录是否存在2.2.1、path.mkdir()&#xff1a;创建目录 2.3、…

如何利用OpenCV4.9离散傅里叶变换

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇:如何利用OpenCV4.9 更改图像的对比度和亮度 下一篇: 目标 我们将寻求以下问题的答案&#xff1a; 什么是傅里叶变换&#xff0c;为什么要使用它&#xff1f;如何在 OpenCV 中做到这一点…

算法---动态规划练习-5(下降路径最小和)

下降路径最小和 1. 题目解析2. 讲解算法原理方法一方法二 3. 编写代码法一法二 1. 题目解析 题目地址&#xff1a;点这里 2. 讲解算法原理 方法一 首先&#xff0c;通过matrix的大小确定矩阵的行数m和列数n。 创建一个大小为(m1) (n2)的二维动态规划数组dp&#xff0c;其中d…

基于单片机的自动浇灌系统的设计

本文设计了一款由单片机控制的自动浇灌系统。本设计的硬件电路采用AT89C51单片机作为主控芯片,采用YL-69土壤湿度传感器检测植物的湿度。通过单片机将采集湿度值与设定值分析处理后,控制报警电路和水泵浇灌电路的开启,从而实现植物的自动浇灌。 1 设计目的 随着生活水平的…