目标:在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 什么,虽然老师讲了,当时感觉明白了,结果试了试发现还是有问题,继续学习。

MVVM ObservableCollection<> ListView的更多相关文章

  1. “Win10 UAP 开发系列”之 在MVVM模式中控制ListView滚动位置

    这个扩展属性从WP8.1就开始用了,主要是为了解决MVVM模式中无法直接控制ListView滚动位置的问题.比如在VM中刷新了数据,需要将View中的ListView滚动到顶部,ListView只有一 ...

  2. WPF MVVM模式下实现ListView下拉显示更多内容

    在手机App中,如果有一个展示信息的列表,通常会展示很少一部分,当用户滑动到列表底部时,再加载更多内容.这样有两个好处,提高程序性能,减少网络流量.这篇博客中,将介绍如何在WPF ListView中实 ...

  3. 【C#/WPF】ListView的MVVM例子,及禁止拖动ListView的头部Header

    一个ListView的MVVM简单例子: <ListView ItemsSource="{Binding GoodsList}" Margin="0,10,0,10 ...

  4. Mvvm绑定datagrid或listview的selectItems的方法[转]

    单选,很简单,将SelectedItem与ViewModel的属性进行双向绑定就OK了 多选,由于ListView的SelectedItems不能进行绑定,需要将ListView的SelectionC ...

  5. WPF中常用控件(TreeView, ComboBox, DataGrid, ListView)使用MVVM模式绑定的demo

    之前几篇关于TreeView的博客中只是贴了源代码,并没有把整个项目上传到github.最近就想着把我常用的几个控件做成一个demo,这样也方便自己以后查看.本人也是WPF新手,但是我并没有打算就往这 ...

  6. 背水一战 Windows 10 (25) - MVVM: 通过 x:Bind 实现 MVVM(不用 Command)

    [源码下载] 背水一战 Windows 10 (25) - MVVM: 通过 x:Bind 实现 MVVM(不用 Command) 作者:webabcd 介绍背水一战 Windows 10 之 MVV ...

  7. 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令

    [源码下载] 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令 作者:webabcd ...

  8. 背水一战 Windows 10 (23) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过 ButtonBase 触发命令

    [源码下载] 背水一战 Windows 10 (23) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过 ButtonBase 触发命令 作者:webabcd ...

  9. MVVM小记

    这篇小记源自于codeproject上的一篇文章 http://www.codeproject.com/Articles/100175/Model-View-ViewModel-MVVM-Explai ...

随机推荐

  1. iOS runtime 知识点整理

    // ------ 动态创建类, 添加成员变量, 赋值并调用动态添加的方法 ------- @implementation ViewController - (void)viewDidLoad { [ ...

  2. CSRF token 无法被验证. ----Yii连接数据库后数据库错误日志报错

    CSRF token 无法被验证. 我使用的是mongodb+ yii1.1 What is CSRF, please see the details here.  http://en.wikiped ...

  3. JSP隐藏过长字段

    <div class="objDiv" title="${fof.fundName }">                        <c ...

  4. java父类与接口有相同的方法

    这是java多态的一个体现,如果一个类classA继承了类classB,有实现了接口interfaceA,并且接口中有方法funA(),且父类classB中也有funA(),那么对于classA来说既 ...

  5. contiki-定时器etimer

    Contiki内核是基于事件驱动和Protothreads机制,事件既可以是外部事件(比如按键,数据到达),也可以是内部事件(如时钟中断).定时器的重要性不言而喻,Contiki提供了5种定时器模型, ...

  6. this

    JavaScript 中的 this ! 2016-12-28 vvv阿城 JavaScript 转自  https://qiutc.me/post/this-this-this-in-javascr ...

  7. 用excel做分组散点图

    散点图主要观察两组变量间的趋势和分布,如果变量多于两组,仍旧使用散点图的话,那所有点都会集中在同一显示区域内,使人无法准确判断,此时一般使用散点图矩阵进行两两比较.除此之外,如果并不关心组与组之间的关 ...

  8. 建站随手记:about server stack

    建站需要,随手记: Server Stack: ----------- 标准的mezzanine的Stack设置 前端:Nginx wsgi:gunicorn cms tool: mezzanine ...

  9. MySQL exists的用法介绍

    有一个查询如下: 1 SELECT c.CustomerId, CompanyName   2 FROM Customers c   3 WHERE EXISTS(   4     SELECT Or ...

  10. Web开发中管理ipad屏幕的方向变化

    Web开发中,我们会遇到在手机垂直或水平视角时展示不同状态的情况.下面我来总结一下检测移动设备方向变化的一些方法. 1 使用javascript 直接看代码: <script type=&quo ...