博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVVM ObservableCollection<> ListView
阅读量:6330 次
发布时间:2019-06-22

本文共 1572 字,大约阅读时间需要 5 分钟。

目标:在ListView中,设两列,一列表示人的姓名,一列表示年龄,用ObservableCollection<>来实现。

编程:

1)定义类Person

public class ABC:INotifyPropertyChanged    

{        

     #region INotifyPropertyChanged 成员

     public event PropertyChangedEventHandler PropertyChanged;        

    public void RaisePropertyChanged(string PropertyName)        

   {            

        if (PropertyChanged!=null)            

        {                

            PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));            

        }        

    }

    #endregion

        private string name;        

        public string Name        

       {            

           get { return name; }            

           set            

          {                

              if (name!=value)                

             {                    

                    name = value;                    

                    RaisePropertyChanged("IP");                

              }            

          }        

}

        private int age;        

        public int Age        

        {            

               get { return age; }            

               set            

              {                

                    if (age != value)                

                    {                    

                         age = value;                    

                         RaisePropertyChanged("Age");                

                      }            

              }        

       }

        public ABC() { }        

        public ABC(string ip,int age)         {             this.Name = ip;             this.Age = age;         }

2).按照MVVM的模式,设计一个ViewModel,在此类中定义ObservableCollection<>:

public Class PracticeViewModel

{

        public ObservableCollection<ABC> collection = new ObservableCollection<ABC>();

        public void InitialCollection()
        {
            collection.Add(new ABC("Betty", 23));
            collection.Add(new ABC("Jully", 24));
            collection.Add(new ABC("Tom", 25));
        }
        public PracticeViewModel()
        {
            InitialCollection();
        }

}

3).定义数据上下文

            PracticeViewModel vm = new PracticeViewModel();

            this.DataContext = vm.collection;

4).写xaml代码

<ListView ItemsSource="{Binding}">

            <ListView.View>
                <GridView>
                    <GridViewColumn Header="姓名"  DisplayMemberBinding="{Binding Name}"/>
                    <GridViewColumn Header="年龄"  DisplayMemberBinding="{Binding Age}"/>
                </GridView>
            </ListView.View>
</ListView>

 现在的问题是:还没搞清楚listView的ItemSource里面应该Binding 什么,虽然老师讲了,当时感觉明白了,结果试了试发现还是有问题,继续学习。

转载于:https://www.cnblogs.com/SherryWang/p/3286121.html

你可能感兴趣的文章
c# SendMail
查看>>
php.ini修改php上传文件大小限制的方法
查看>>
OSGEarth环境搭建
查看>>
ubuntu 12.10 进入命令行界面 (字符界面)
查看>>
mysql查询正在执行的进程
查看>>
JavaScript核心语法学习部分(六)
查看>>
vc6.0 使用Ado 连接MS-SqlServer2000 连接字符串
查看>>
[2009.03.22 21:37:00] 肖申克的救赎-The Shawshank
查看>>
戏说Nginx(三)
查看>>
允许普通域用户登录域控制器
查看>>
比特币代码分析8 区块校验和确认
查看>>
抓包工具
查看>>
MySQL explain type详解
查看>>
无线网络连接一直显示“正在获取网络地址”
查看>>
SDWebImage 最新版详解
查看>>
历年项目、需求支持经历
查看>>
被偷走的那三年
查看>>
zabbix错误和解决办法
查看>>
linux基础命令(5)
查看>>
Exchange企业实战技巧系列之终结篇
查看>>