WPF数据绑定(2 绑定列表数据Binding to List Data)

本文详细介绍了WPF中如何绑定列表数据,包括当前项Current Item的获取、List Data Targets的选择、Display Members和Value Members的设定、数据模板Data Templates的应用、列表改变List Changes的处理、排序Sorting、过滤Filter以及分组Grouping的实现。通过实例代码展示了如何实现列表的动态更新、排序、过滤和分组,帮助读者深入理解WPF数据绑定的使用。
摘要由CSDN通过智能技术生成

(读完此系列WPF和Silverlight的数据绑定问题你就轻松搞定

1 Binding to List Data

前面都是绑定到一个对象,下面我们学习绑定到对象列表的方法。

我们还是先组织要绑定的数据,对象所对应的类还是Person,但新增了一个新类People,该类用来组织Person的列表.代码如下:

using System;
            using System.Collections.Generic;
            using System.ComponentModel;//INotifyPropertyChanged
            namespace SimpleDataBinding
            {
            class Person : INotifyPropertyChanged
            {
            public event PropertyChangedEventHandler PropertyChanged;
            protected void Notify(string PropName)
            {
            if (this.PropertyChanged != null)
            {
            PropertyChanged(this, new PropertyChangedEventArgs(PropName));
            }
            }
            public Person()
            {
            _Age = 0;
            _name = "Null";
            this.CurrentDate = DateTime.Now;
            }
            private string _name;
            public string Name
            {
            get { return _name; }
            set
            {
            if (value == _name)
            { return; }
            _name = value;//注意:不能用this.Name来赋值,如果这样形成循环调用,栈溢出
            Notify("Name");
            }
            }
            private int _Age;
            public int Age
            {
            get { return _Age; }
            set
            {
            if (value == _Age) return;
            _Age = value;
            Notify("Age");
            }
            }
            public DateTime CurrentDate { get; set; }
            }
             //People类
            class People : List<Person>
            {
            }
            }
            

注意在同一命名空间下的代码最后添加了Perople类。

我们在UI里显示的XAML如下:

<Window x:Class="ListDataBinding.BindListDataTest"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              xmlns:src="clr-namespace:ListDataBinding"
            Title="BindListDataTest" Height="113" Width="300">
            <Window.Resources>
             <src:People x:Key="Family">
            <src:Person Name="Jack" Age="18"/>
            <src:Person Name="Tom" Age="30"/>
            <src:Person Name="Jone" Age="14"/>
            <src:Person Name="Rose" Age="17"/>
            <src:Person Name="Mike" Age="13"/>
            </src:People>
            </Window.Resources>
            <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值