1.两个控件之间的数据绑定

Text = "{Binding Path=Value,ElementName=slider1}"

2.控件和类之间的数据绑定

1.创建一个Person类,设置类的接口为INotifyPropertyChanged。

设置相关的命名空间和事件

设置绑定的属性的set。

2.在XMAL的TextBox中设置 Text绑定 类中相关的属性

3.在窗口类中 使用Person来定义对象。将对象赋值给TextBox的 DataContent

自定义的Person类的代码:

  class Person:INotifyPropertyChanged {private int age;public int Age{get { return age; }set { age = value; if (PropertyChanged != null){PropertyChanged(this, new PropertyChangedEventArgs("Age"));}}}private string name;public string Name{get { return name; }set { name = value; }}public event PropertyChangedEventHandler PropertyChanged;}

在XMAL中的设置:

Text ="{Binding Age}"

在MainWIndow类中中设置:

  public partial class MainWindow : Window{Person p = new Person();public MainWindow(){InitializeComponent();}private void Window_Loaded(object sender, RoutedEventArgs e){p.Age = 10;textBox2.DataContext = p;}private void button1_Click(object sender, RoutedEventArgs e){p.Age++;}private void button2_Click(object sender, RoutedEventArgs e){MessageBox.Show(p.Age.ToString());}}

数据绑定的内容就完成了。

3.ListBox的应用.

Listbox常用的属性:SelectItem ,SelectValue。ItemSource ,DisplayMemberPath。

XAML:

 <ListBox DisplayMemberPath ="Name" SelectedValue="Age"  Name="lbPerson" Height="170" HorizontalAlignment="Left" Margin="48,86,0,0"  VerticalAlignment="Top" Width="168" />

CS:

 private void Window_Loaded(object sender, RoutedEventArgs e){List<Person> listPerson = new List<Person>();listPerson.Add(new Person() { Age = 15, Name = "Asuna" });listPerson.Add(new Person() { Age = 16, Name = "Hina" });listPerson.Add(new Person() { Age = 14, Name = "Misaka" });lbPerson.ItemsSource = listPerson;}private void btnAge_Click(object sender, RoutedEventArgs e){object selectItem = lbPerson.SelectedItem;object selectAge = lbPerson.SelectedValue;}

XMAL:

<ListBox Height="176" HorizontalAlignment="Left" Margin="64,54,0,0" Name="lbComic" VerticalAlignment="Top" Width="171" SelectionChanged="lbComic_SelectionChanged" />

CS:

 private void Window_Loaded(object sender, RoutedEventArgs e){List<string> listComic = new List<string>();listComic.Add("刀剑神域");listComic.Add("某科学的超电磁炮");listComic.Add("旋风管家");lbComic.ItemsSource = listComic;}private void lbComic_SelectionChanged(object sender, SelectionChangedEventArgs e){List<string> listPlayer = new List<string>();string strComic = (string)lbComic.SelectedItem;if (strComic == "刀剑神域"){listPlayer.Add("亚丝娜");listPlayer.Add("桐谷和人");listPlayer.Add("桐谷直叶");lbPlayer.ItemsSource = listPlayer;} else if (strComic == "某科学的超电磁炮"){listPlayer.Add("御坂美琴");listPlayer.Add("白井黑子");listPlayer.Add("婚后光子");lbPlayer.ItemsSource = listPlayer;}else if (strComic == "旋风管家"){listPlayer.Add("三千院凪");listPlayer.Add("桂雏菊");listPlayer.Add("西泽步");lbPlayer.ItemsSource = listPlayer;}}

4.DataGrid的常见用法。

DataGrid的使用方法跟ListBox很像。都是用来显示数据的常用控件。

1.DataGrid的常用属性:AutoGenerateColumns ,CanUserAddRows,IsReadOnly

2.代码:

XMAL:

<Window x:Class="GridData.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded"><Grid><DataGrid AutoGenerateColumns ="False" CanUserAddRows ="False"  Name="dgPerson" IsReadOnly ="False"   Height="200" HorizontalAlignment="Left" Margin="44,41,0,0"  VerticalAlignment="Top" Width="360" ><DataGrid.Columns><DataGridTextColumn Header ="动漫" Binding ="{Binding Comic}"></DataGridTextColumn><DataGridTextColumn Header ="人物" Binding ="{Binding Name}"></DataGridTextColumn><DataGridTextColumn Header ="年龄" Binding ="{Binding Age}"></DataGridTextColumn><DataGridCheckBoxColumn Header ="性别" Binding ="{Binding Gender}"></DataGridCheckBoxColumn><DataGridComboBoxColumn Header ="班级" SelectedItemBinding ="{Binding ClassName}" x:Name ="className"></DataGridComboBoxColumn></DataGrid.Columns></DataGrid></Grid>
</Window>

CS:

 public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}private void Window_Loaded(object sender, RoutedEventArgs e){List<Player> lsPlayer = new List<Player>();lsPlayer.Add(new Player { Comic = "刀剑神域", Name = "Asuna", Age = 14,Gender = false});lsPlayer.Add(new Player { Comic = "某科学的超电磁炮", Name = "Misaka", Age = 14, Gender = false });lsPlayer.Add(new Player { Comic = "旋风管家", Name = "Hina", Age = 16, Gender = false });lsPlayer.Add(new Player { Comic = "海贼王", Name = "Lufei", Age = 17, Gender = true });dgPerson.ItemsSource = lsPlayer;dgPerson.List<string> classNames = new List<string>();classNames.Add("一班");classNames.Add("二班");classNames.Add("三班");classNames.Add("四班");className.ItemsSource = classNames;string str = null;}}

自定义类Person:

namespace GridData
{class Player{//所属作品 姓名 年龄 男女 班级private string comic;public string Comic{get { return comic; }set { comic = value; }}private string name;public string Name{get { return name; }set { name = value; }}private int age;public int Age{get { return age; }set { age = value; }}private bool gender;public bool Gender{get { return gender; }set { gender = value; }}private string className;public string ClassName{get { return className; }set { className = value; }}}
}

传智播客数据绑定和数据库开发基础(第四季)相关推荐

  1. 传智播客C/C++各种开发环境搭建视频工具文档免费教程

    传智播客作为中国IT培训的领军品牌,一直把握技术趋势,给大家带来最新的技术分享!传智播客C/C++主流开发环境免费分享视频文档中,就有写一个helloworld程序的示范.火速前来下载吧 所谓&quo ...

  2. 传智播客张孝祥java邮件开发随笔01

    01_传智播客张孝祥java邮件开发_课程价值与目标介绍 02_传智播客张孝祥java邮件开发_邮件方面的基本常识 03_传智播客张孝祥java邮件开发_手工体验smtp和pop3协议 第3课时 关于 ...

  3. 传智播客php拔高_传智播客第30期PHP基础班视频教程(高清完整版)

    传智播客第30期PHP基础班视频教程(高清完整版)--更多资源,课程更新在 多智时代 duozhishidai.com 多智时代资源,简介: 教程目录 day1 1html介绍 2html标签基本形式 ...

  4. 2017最新整理传智播客JavaEE第49期 基础就业班

    2017最新整理传智播客JavaEE第49期 基础就业班 可以说是一套不可多的的教程,有条件的同学建议报名培训,效果更佳,没有条件的朋友就买个培训课堂上录制的视频吧. 视频教程推送门:http://b ...

  5. 传智播客ADO.Net项目开发教程详解

    内容简介: 本教程为传智播客.Net培训课堂的现场录像,请到传智播客.Net学院下载更多免费.Net视频教程或者参加讲师现场授课的.Net实地培训班. 视频目录: (一)操作员管理.部门管理.基础数据 ...

  6. 传智播客java怎么样_零基础学习java开发选择云和好还是传智播客好?

    和我撕或者喷我真的一点意义都没有,去不去培训班,去哪个培训班跟我没有半毛钱关系,你要说你自己就是这么与众不同又努力又是一个天才真能在那一大堆人之中脱颖而出,那么恭喜你你很牛逼,不需要特别告诉我我也没啥 ...

  7. 《传智播客.Net培训.net视频教程》(.net视频asp.net培训传智播客asp.net视频教程开放课程c#视频移动开发winform SQL ADO.Net HTML JavaScript

    本资源重要通知 2011年4月传智播客.Net培训-免费公开课现场视频 [重磅内容]微软移动开发介绍1-早起的鸟儿有食吃.rar 详情 53.2MB [重磅内容]微软移动开发介绍2-windows.p ...

  8. 传智播客 .NET面试宝典(2015版)

    .Net工程师面试笔试宝典 培训班常见问题 1.你们会带着我们做完整个完整的项目吗? 答:小的项目会,大的项目则不可能, 1.众所周知,随便拿出一个中等大小的项目,也需要好多个熟练的开发人员开发好多个 ...

  9. 传智播客 .NET面试宝典(2014版)

    .Net工程师面试笔试宝典 由于这套面试题涉及的范围很泛,很广,很杂,大家不可能一天两天就看完和学完这套面试宝典,即使你已经学过了有关的技术,那么至少也需要一个月的时间才能消化和掌握这套面试宝典,所以 ...

最新文章

  1. pls-00302: 必须声明 组件_vue学习手册-单文件组件使用
  2. 【问链-区块链基础知识系列】 第十四课 数字货币交易所的前世、今生和未来(一)
  3. 玩大了! 阿里工程师的年会竟然这样搞?
  4. [Project Euler] 来做欧拉项目练习题吧: 题目004
  5. java math round小数_Java——Math的round方法
  6. c#事务的使用、示例及注意事项
  7. 【剑指offer】面试题27:二叉树的镜像(Java)
  8. zebra的命令存储原理及使用方法
  9. 【JS基础】JavaScript语言简介及简单例子
  10. excel工具栏隐藏了怎么办_?Excel菜单栏中工具栏突然不见了,怎么办?
  11. XFire野猪书-XFire开发指南第二版
  12. 应用测试一(烤地瓜)——> 隐藏数据
  13. java程序设计——实验四
  14. lua时间戳和日期转换
  15. P4720 【模板】扩展卢卡斯
  16. 高云fpga.Tang Nano 4k(GW1NSR-4C)呼吸灯
  17. Windows Server 2012 新功能:IPAM 配置
  18. 关于Debug.Log的一点儿小知识
  19. 【opencv】高频低频滤波
  20. 以上证指数为例学习pandas数据分析

热门文章

  1. 谷歌地图下载器中“地图艺术照”
  2. origin画图很多个重叠在一起的
  3. 服务器硬件基础设施,【通讯技术】细节定成败,NFV中的硬件基础设施管理
  4. SpringCloud(二)——Eureka的使用和集群搭建
  5. oracle默认导出dmp路径_Oracle导入导出dmp文件
  6. 谷歌宣布Android设备累计激活量突破10亿台
  7. Amazon EKS基于GitLab的CICD实践一 GitLab的部署和配置篇
  8. Java人才招聘求职管理系统源码前后端带文字搭建教程
  9. 程序员需要具备的五个基本条件
  10. 实施日志流处理分析_通过实施了解流