WPF使用资源绑定自定义类型

废话不多说直接上代码:

首先是设置资源如下:

<wpf:Person Name="FirstName" LastName="Last" x:Key="per"/>

绑定的对象,主要将PersonList属性绑定到Text上:

<TextBlock Text="{Binding Source={StaticResource per},Path=PersonList[1].Name}"  />


自定义对象如下:

 public class Person : INotifyPropertyChanged
    {
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value;
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs("Name"));
            }
            }
        }
        private string lastName;

        public string LastName
        {
            get { return lastName; }
            set
            {
                lastName = value;

            }
        }

        private List<Person> personList;

        public List<Person> PersonList
        {
            get { return personList; }
            set
            {
                personList = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("PersonList"));
                }
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
    }

当前资源里面的PersonList属性是Null,所以在某个时机下你需要设置值,才能显示TextBlock的Text值,本例我在一个Button事件中设置了值如下:

  Person p = this.FindResource("per") as Person;
  p.PersonList= new List<Person>() { new Person { Name = "Jay", LastName = "Jay" }, new Person { Name = "Jay1", LastName = "Jay1" }, new Person { Name = "Jay2", LastName = "Jay2" } };

单击Button后Text显示Jay1。


<TextBlock Text="{Binding Source={StaticResource per},Path=PersonList/Name}"  />

当Path改成如上形式,会显示Jay, “/”默认取集合的第一条数据。

         



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值