WPF 项目开发入门(五)ListView列表组件 与 Expander组件
WPF 项目开发入门(一) 安装运行
WPF 项目开发入门(二) WPF 页面布局
WPF 项目开发入门(三)WPF 窗体与页面
WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件
WPF 项目开发入门(五)ListView列表组件 与 Expander组件
WPF 项目开发入门(六)DataGrid组件
WPF 项目开发入门(七) From表单组件
WPF 项目开发入门(八)数据库驱动配置与数据库操作
WPF 项目开发入门(九)数据库连接 NHibernate使用
WPF 项目开发入门(十)DevExpress 插件+NHibernate登录
WPF 项目开发入门(十一)DevExpress 插件 Grid表格应用
ListView 显示数据为列表形式,类似于html中的lo,lu,li等元素。
ListView数据绑定
- ListView 组件通过 ItemsSource属性绑定 数据集合。
public partial class Frame1 : Window {private List<Customer> _customers = new List<Customer>();public Frame1(){InitializeComponent();//装入列表数据结构内容_customers.Add(new Customer { Id = 1, Name = "name1", Path = "../Page1.xaml" });_customers.Add(new Customer { Id = 2, Name = "name2", Path = "../Page2.xaml" });_customers.Add(new Customer { Id = 3, Name = "name3", Path = "../布局/Page1.xaml" });ListViewName.ItemsSource = _customers;//ListView组件名称全局唯一引用}//定义列表数据结构public class Customer {public int Id { get; set; }public string Name { get; set; }public string Path { get; set; }public override string ToString(){return $"{Id} - {Name} - {Phone}";}}}
xaml代码
<ListView x:Name="CustomerListView"Margin="0,5,0,0">
</ListView>
执行程序后,页面显示 3 个数据项,但显示“Customer”,数据没有启到作用。这是因为显示了Customer 类默认的ToString() 字符串。需要定义Customer 类的ToString() 内容。
数据类型 ToString()
数据类中覆盖 ToString() 方法。在ToString()方法中定义组件显示的文字内容字符串。
如下所示:在类中ToString() 将生成一个由连字符分隔的 ID、名称的字符串。
public class Customer {public int Id { get; set; }public string Name { get; set; }public string Path { get; set; }public override string ToString(){return $"{Id} -{Name}";//ListView组件显示内容}
}
现在可以查看到菜单中显示的数据信息内容了。
ItemTemplate、DataTemplate 绑定组件数据
在Xaml代码的ListView 组件中使用 ListView.ItemTemplate 属性创建一个 DataTemplate 模板块。使用 StackPanel 布局来摆放TextBlock控件。设置TextBlock控件进行数据绑定 Text = ”{Binding Id}” 来指定要显示数据类的哪个值。如果您想更改字体大小、文本颜色等,您只需更改 TextBlock 的这些属性,即可创建您喜欢的任何布局。
<ListView x:Name="CustomerListView1"Margin="0,5,0,0"><ListView.ItemTemplate>------------------------数据模板设置<DataTemplate><StackPanel Orientation="Horizontal">--水平布局<TextBlock Text="{Binding Id}"/>---显示Customer类中的id属性<TextBlock Text="{Binding Name}"/>---显示Customer类中的Name属性</StackPanel></DataTemplate></ListView.ItemTemplate>
</ListView>
ListView的Height属性滚动条
<ListView x:Name="CustomerListView"Margin="0,5,0,0"Height="250">------超过出现滚动条
ListView 事件绑定
ListView 事件绑定SelectionChanged事件。
<ListView x:Name="CustomerListView"Margin="0,5,0,0" SelectionChanged="OnListViewChangedZht"></ListView>
事件处理
private void OnListViewChangedZht(object sender, SelectionChangedEventArgs e){ListView t = (ListView)sender;Customer c=(Customer)t.SelectedItem;Uri uri = new Uri(c.Path, UriKind.Relative);framemain.Source = uri;
}
ListView 表格GridView
<ListView ItemsSource="{Binding}" x:Name="listView" Grid.Row="0"><ListView.View><GridView><GridViewColumn Header="分数" DisplayMemberBinding="{Binding Path=Subj}" Width="50"/><GridViewColumn Header="名称" DisplayMemberBinding="{Binding Path=Name}" Width="50"/><GridViewColumn Header="班级" DisplayMemberBinding="{Binding Path=ClassName}" Width="100"/></GridView></ListView.View>
</ListView>---------------------------- 数据绑定 ----------------------------------listView.DataContext = list;
Expander组件
Expander 控件是可以打开和关闭区域的控件。如果不指定 Expander 本身的 Height,则当您关闭 Expander 时,区域会缩小,其下方的控件也会随之跟进。如果指定高度,则区域在关闭时的高度保持不变。
- IsExpanded属性自动展开
- BorderBrush 背景色内容
<Expander SnapsToDevicePixels="True" Header="管理系统" IsExpanded="True"><StackPanel Orientation="Horizontal"><ListView x:Name="CustomerListView" Width="196"Margin="0,5,0,0" SelectionChanged="OnListViewChangedZht"></ListView></StackPanel>
</Expander>
WPF 项目开发入门(五)ListView列表组件 与 Expander组件相关推荐
- WPF 项目开发入门(一) 安装运行
WPF 项目开发入门(一) 安装运行 WPF 项目开发入门(二) WPF 页面布局 WPF 项目开发入门(三)WPF 窗体与页面 WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件 ...
- WPF 项目开发入门(三)WPF 窗体与页面
WPF 项目开发入门(一) 安装运行 WPF 项目开发入门(二) WPF 页面布局 WPF 项目开发入门(三)WPF 窗体与页面 WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件 ...
- WPF 项目开发入门(十)DevExpress 插件+NHibernate 登录实现
WPF 项目开发入门(一) 安装运行 WPF 项目开发入门(二) WPF 页面布局 WPF 项目开发入门(三)WPF 窗体与页面 WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件 ...
- WPF 项目开发入门(二) WPF 页面布局
WPF 项目开发入门(一) 安装运行 WPF 项目开发入门(二) WPF 页面布局 WPF 项目开发入门(三)WPF 窗体与页面 WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件 ...
- WPF PRISM开发入门一( 初始化PRISM WPF程序)
原文:WPF PRISM开发入门一( 初始化PRISM WPF程序) 这篇博客将介绍在WPF项目中引入PRISM框架进行开发的一些基础知识.目前最新的PRISM的版本是Prism 6.1.0,可以在G ...
- python开发web项目_Django2:Web项目开发入门笔记(20)
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这一篇教程,我们一起来了解如何在CentOS系统中将Django2的Web项目部署到Nginx服务器. CentOS系统虽然和Ubuntu系统都是Linu ...
- 仿LOL项目开发第五天
仿LOL项目开发第五天 by草帽 今天呢,我们看下能开发什么内容,首先上节我们已经讲了UI框架的搭建,上节还遗留下很多问题,比如说消息的字符是代码里面自己赋值的. 那么就比较死板,按照正常的逻辑,那些 ...
- C#WPF 项目开发(一)(火车订票系统)
C#WPF 项目开发(一)(火车订票系统) 一.架构模式 I.了解架构模式 1.如何设计大型企业级的系统,在开始主要的代码开发之前,我们必须选择一种 合适的体系架构. (1).架构模式是对给定上下文的 ...
- openresty 前端开发入门五之Mysql篇
2019独角兽企业重金招聘Python工程师标准>>> openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysq ...
最新文章
- Windbg 脚本命令简介
- 11--MySQL数据查询应用(实战)(二)
- UNITY 画布的粗浅理解
- 【效率】再见 Typora,这款 Markdown 编辑器开源又免费!
- 图像文字识别(二):java调用tesseract 识别图片文字
- C# 实验四 修改版 获取系统时间、点击加一秒功能
- Paillier半同态加密:原理、高效实现方法和应用
- 符号库匹配不对的原因_整理了几种离合器打滑的原因,再安装调试时可别弄错了...
- php set_time_limit()的作用是什么
- 医院预约挂号小程序 开题报告(基于微信小程序毕业设计题目选题课题)
- ARB_precision_hint_fastest,ARB_precision_hint_nicest 的意义,作用
- Excel简单使用宏
- Python - Python3 编程第一步 Fibonacci series: 斐波纳契数列
- php的persion是,php创建Persion类,反射过程,反射后使用流程详解
- 标准 BT656 并行 数据结构 详解
- oracle括号不区分中英,oracle查询不含括号及不含指定字符的方法
- HTML tabindex用法及使用场景详解
- 让地震预警更快、更准,人工智能助力城市应急管理
- Security Shepherd实战笔记(答案)
- 适用于Linux的3个顶级开源交叉分发软件包管理系统
热门文章
- ubuntu18.04 安装ceres,g2o,以及cmake升级
- Mac 下使用 Aria2 实现迅雷离线和百度云下载
- idea全局搜索find页面导出成excel
- nginx配置代理404问题
- window.location与open用法
- 安卓 鸿蒙 emui之间的关系,Android、鸿蒙 OS 和 EMUI 是什么关系?
- MATLAB 求 年降水 和 年均温
- 这批北上广人,已经开始变态了
- Page Object 模式很火,UI 自动化测试到底要不要用?怎么用?
- VS Code Boxy Solarized Light 护眼配色方案