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组件相关推荐

  1. WPF 项目开发入门(一) 安装运行

    WPF 项目开发入门(一) 安装运行 WPF 项目开发入门(二) WPF 页面布局 WPF 项目开发入门(三)WPF 窗体与页面 WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件 ...

  2. WPF 项目开发入门(三)WPF 窗体与页面

    WPF 项目开发入门(一) 安装运行 WPF 项目开发入门(二) WPF 页面布局 WPF 项目开发入门(三)WPF 窗体与页面 WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件 ...

  3. WPF 项目开发入门(十)DevExpress 插件+NHibernate 登录实现

    WPF 项目开发入门(一) 安装运行 WPF 项目开发入门(二) WPF 页面布局 WPF 项目开发入门(三)WPF 窗体与页面 WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件 ...

  4. WPF 项目开发入门(二) WPF 页面布局

    WPF 项目开发入门(一) 安装运行 WPF 项目开发入门(二) WPF 页面布局 WPF 项目开发入门(三)WPF 窗体与页面 WPF 项目开发入门(四) MVVM 模式 与 TreeView树组件 ...

  5. WPF PRISM开发入门一( 初始化PRISM WPF程序)

    原文:WPF PRISM开发入门一( 初始化PRISM WPF程序) 这篇博客将介绍在WPF项目中引入PRISM框架进行开发的一些基础知识.目前最新的PRISM的版本是Prism 6.1.0,可以在G ...

  6. python开发web项目_Django2:Web项目开发入门笔记(20)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这一篇教程,我们一起来了解如何在CentOS系统中将Django2的Web项目部署到Nginx服务器. CentOS系统虽然和Ubuntu系统都是Linu ...

  7. 仿LOL项目开发第五天

    仿LOL项目开发第五天 by草帽 今天呢,我们看下能开发什么内容,首先上节我们已经讲了UI框架的搭建,上节还遗留下很多问题,比如说消息的字符是代码里面自己赋值的. 那么就比较死板,按照正常的逻辑,那些 ...

  8. C#WPF 项目开发(一)(火车订票系统)

    C#WPF 项目开发(一)(火车订票系统) 一.架构模式 I.了解架构模式 1.如何设计大型企业级的系统,在开始主要的代码开发之前,我们必须选择一种 合适的体系架构. (1).架构模式是对给定上下文的 ...

  9. openresty 前端开发入门五之Mysql篇

    2019独角兽企业重金招聘Python工程师标准>>> openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysq ...

最新文章

  1. Windbg 脚本命令简介
  2. 11--MySQL数据查询应用(实战)(二)
  3. UNITY 画布的粗浅理解
  4. 【效率】再见 Typora,这款 Markdown 编辑器开源又免费!
  5. 图像文字识别(二):java调用tesseract 识别图片文字
  6. C# 实验四 修改版 获取系统时间、点击加一秒功能
  7. Paillier半同态加密:原理、高效实现方法和应用
  8. 符号库匹配不对的原因_整理了几种离合器打滑的原因,再安装调试时可别弄错了...
  9. php set_time_limit()的作用是什么
  10. 医院预约挂号小程序 开题报告(基于微信小程序毕业设计题目选题课题)
  11. ARB_precision_hint_fastest,ARB_precision_hint_nicest 的意义,作用
  12. Excel简单使用宏
  13. Python - Python3 编程第一步 Fibonacci series: 斐波纳契数列
  14. php的persion是,php创建Persion类,反射过程,反射后使用流程详解
  15. 标准 BT656 并行 数据结构 详解
  16. oracle括号不区分中英,oracle查询不含括号及不含指定字符的方法
  17. HTML tabindex用法及使用场景详解
  18. 让地震预警更快、更准,人工智能助力城市应急管理
  19. Security Shepherd实战笔记(答案)
  20. 适用于Linux的3个顶级开源交叉分发软件包管理系统

热门文章

  1. ubuntu18.04 安装ceres,g2o,以及cmake升级
  2. Mac 下使用 Aria2 实现迅雷离线和百度云下载
  3. idea全局搜索find页面导出成excel
  4. nginx配置代理404问题
  5. window.location与open用法
  6. 安卓 鸿蒙 emui之间的关系,Android、鸿蒙 OS 和 EMUI 是什么关系?
  7. MATLAB 求 年降水 和 年均温
  8. 这批北上广人,已经开始变态了
  9. Page Object 模式很火,UI 自动化测试到底要不要用?怎么用?
  10. VS Code Boxy Solarized Light 护眼配色方案