【黑马程序员】2013年12月5日学习笔记

原创 2013年12月06日 01:11:15

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

今天学习的是ADO.NET相关内容,ADO.NET可以与SQL Server等数据源进行访问,并进行检索、删除、更新、插入等操作。

首先在学习ADO.NET之前,杨老师先讲了数据绑定。所有属性都能通过{binding **}来进行绑定,而toortip属性可以用来设置提示。

但是遇到一个问题,如图


当点击“年龄+1”按钮时,相应的年龄文本框却没有发生改变,原因是年龄文本框没有办法监听到数据发生的改变,所以需要对原来的代码进行改进。

Person类代码:

class Person:INotifyPropertyChanged//接口,监听是否需要通知对象的属性改变
    {
        private int age;//声明一个私有变量,因为Age没办法再用简体的写法
        public string Name//Name属性
        {
            get;
            set;
        }
        public int Age//Age属性
        {
            get
            {
                return age;//接收
            }
            set
            {
                this.age = value;//设置值
                if (PropertyChanged != null)//判断是否有发生改变的事件
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("age"));//如果发生改变,就改变age的值
                }
            }
        }

通过INotifyPropertyChanged接口来监听属性是否发生改变,当使用这种方法时,类中接收及设置数据的方法不能采用简写的方式,并在set中判断所要监听的值是否发生改变,如果发生改变,就改变相应的Age的值。

 

主窗口代码:

Person person = new Person();//实例化person类
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            person.Name = "第六天魔王";//为person类的name属性赋值
            person.Age = 23;//为person类的age属性赋值
            txtName.DataContext = person;//文本框txtname数据绑定
            txtAge.DataContext = person;//文本框txtage数据绑定
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            person.Age++;//Age值自加1
        }

首先在MainWindow类中实例化Person类,然后在窗口加载事件发生时为属性赋值并进行数据绑定。

而当单击button1按钮时,将age+1。

关于数据绑定,如果需要绑定的数据项过多时,可以直接用Grid的Name进行绑定。

子控件继承父控件的DataContent,而且子控件可以单独修改自己的DataContent。

也可以用this.DataContext来绑定主窗 体内多有控件

 

 

之后讲到了ListBox,列表框,需要注意的是ListBox的显示属性是ItemSource,而不是Content(button)或者是Text(Textblock,TextBox)。

 

XAML代码:

<ListBox Height="128" DisplayMemberPath="Name" SelectedValuePath="Age" HorizontalAlignment="Left" Margin="258,12,0,0" Name="listBox2" VerticalAlignment="Top" Width="214" >
          


Displaymenberpath属性:决定ListBox中显示的是绑定的数据中的哪一项数据。

Selectedvaluepath属性:决定选择该项数据时应显示的值



当选中数据项时,点击button按钮时,就会显示此人的年龄。

 

最后讲到了DataGrid表格控件。




要想达到上图的显示效果,就要用到DataGrid,它可以将结果按表格输出

 

<DataGrid Name="StuList" AutoGenerateColumns="False" CanUserAddRows="False">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Name}" Header="姓名"></DataGridTextColumn>
                <DataGridTextColumn Binding="{Binding Age}" Header="年龄"></DataGridTextColumn>
                <DataGridCheckBoxColumn Binding="{Binding Gender}" Header="性别"></DataGridCheckBoxColumn>
                <DataGridTextColumn Binding="{Binding Score}" Header="分数"></DataGridTextColumn>
                <DataGridComboBoxColumn SelectedItemBinding="{Binding Class}" Header="班级" x:Name="selClass"></DataGridComboBoxColumn>
            </DataGrid.Columns>
        </DataGrid>

AutoGenerateColumns属性用来设置是否自动增加列,一般选false,否则在某些情况下会带来麻烦

CanUserAddRows属性用来设置是否在最后一行数据下面加一个空白行

<DataGrid.Columns> 用来设置列数

<DataGridTextColumn Binding="{Binding Name}" Header="姓名"></DataGridTextColumn> 用来设置具体每一列显示的内容及数据绑定

Header用来定义列名

当控件没有Name属性时,用X:Name来给控件命名。

当需要在单元格中使用下拉式菜单,用DataGridComboBoxColumn属性,并用

SelectedItemBinding来进行数据绑定。


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

2015年12月5日

所以呢,这貌似是第一篇博客。@echo off echo My First Blog . pause exit哈哈,好吧。只是前几天大概12月1日左右接触了一下批处理DOS之类的吧,然后觉得蛮好玩的就...
  • SeansZou
  • SeansZou
  • 2015年12月06日 01:03
  • 217

2013年8月5日周刊

一:我所学到的         1、 javascript                                撒反对党 斯蒂芬斯蒂芬斯蒂芬斯蒂芬         2、 html     ...
  • u011605840
  • u011605840
  • 2013年08月05日 14:56
  • 590

2013年12月20号

1、zImage和Uimage。          zImage是ARM Linux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头...
  • u012530991
  • u012530991
  • 2013年12月20日 13:19
  • 393

2013年12月22日

1、XIP(芯片内执行)、MBR(主引导扇区)。 2、系统加电或复位后,所有的 CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如,基于 ARM7TDMI core 的 CPU 在复...
  • u012530991
  • u012530991
  • 2013年12月22日 14:21
  • 309

2013年12月29日

main 函数在很多方面都比较特别,其中最重要的是每个 C++ 程序必须含有main 函数,且main 函数是(唯一)被操作系统显式调用的函数。       定义函数必须指定 4 个元素:返回类型、...
  • doudou311
  • doudou311
  • 2013年12月29日 23:46
  • 305

2013年12月31号

我也不知道写这个是为了纪念什么还是总结什么,或者为了表达什么,总之就是无意间打开了博客,敲起了键盘,说一点对自己的话吧。 微冷的清晨,微眯着眼睛,打开了手机,刷了空间,刷了微博,发现热点竟然是千篇一律...
  • Chengwuli125
  • Chengwuli125
  • 2013年12月31日 10:31
  • 1091

2013年6月5日CSDN讲座

那天,CSDN的杨老师有幸来我们学校,为我们讲他毕业十年的奋斗史 。我在校门口见到杨老师的时候,就觉得他很特别,完全不像是一个已经工作十年经验丰富的程序员!反而觉得他的年纪跟我们差不多,一开口说话就让...
  • u010600881
  • u010600881
  • 2013年06月08日 19:59
  • 405

2013年9月5日、|思维方法

摘书--------------------- 世界上最伟大的50种思维方法? 一、最金典的思维模式? ? 1.?上帝思维????????????????????? “关爱别人,受益自己。”上帝...
  • wangzhenzhou6
  • wangzhenzhou6
  • 2013年09月05日 06:05
  • 436

2013年11、12月工作总结

时间:2013年11月4日到2013年12月6日 项目名称:交管局档案管理系统 开发工具:eclipse 开发人数:3人 数据库:oracle 项目描述:该项目是公司为荆州市公安厅交通管理局管理机动车...
  • dutianqi110
  • dutianqi110
  • 2013年12月24日 14:29
  • 383

2013年12月16日

学习android挺长时间了,但是对于Appliction还不是很了解。今天花一些时间研究了一下Application。   What is Application Application和Ac...
  • bingo_1214
  • bingo_1214
  • 2015年04月13日 16:50
  • 172
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【黑马程序员】2013年12月5日学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)