【黑马程序员】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

相关文章推荐

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

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 今天学习的是杨老...
  • ntyt123
  • ntyt123
  • 2013年12月04日 23:52
  • 286

黑马程序员JNI学习笔记

  • 2013年05月23日 23:49
  • 37KB
  • 下载

【黑马程序员】2013年12月1日学习总结

今天学习的是杨中科老师的WPF视频。从现在开始正式接触到了软件的开发,着实兴奋了好久。 WPF是Windows Presentation Foundation的简称,主要用途与微软之前的WinFor...
  • ntyt123
  • ntyt123
  • 2013年12月01日 23:29
  • 366

OpenCV学习笔记五(2016年12月5日)Opencv基本架构分析

参考书籍《OpenCV3编程入门》毛星云 2015年2月第一版 本人使用的是OpenCV2.4.13版 ...\opencv\build\include目录:包含opencv和opencv2两个文件...

OpenCV学习笔记四(2016年12月5日)选取图像局部区域

Mat 类提供了多种方便的方法来选择图像的局部区域。 使用这些方法时需要注意,这些方法并不进行内存的复制操作。如果将局部区域赋值给新的 Mat 对象,新对象与原始对象共用相同的数据区域,不新申请内存,...

【黑马程序员】2013年11月27日学习记录

---------------------- http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----...
  • ntyt123
  • ntyt123
  • 2013年11月27日 22:38
  • 339

黑马程序员安卓核心笔记

  • 2015年10月21日 21:44
  • 12.4MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【黑马程序员】2013年12月5日学习笔记
举报原因:
原因补充:

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