MVVM ObservableCollection<> ListView
目标:在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的更多相关文章
- “Win10 UAP 开发系列”之 在MVVM模式中控制ListView滚动位置
这个扩展属性从WP8.1就开始用了,主要是为了解决MVVM模式中无法直接控制ListView滚动位置的问题.比如在VM中刷新了数据,需要将View中的ListView滚动到顶部,ListView只有一 ...
- WPF MVVM模式下实现ListView下拉显示更多内容
在手机App中,如果有一个展示信息的列表,通常会展示很少一部分,当用户滑动到列表底部时,再加载更多内容.这样有两个好处,提高程序性能,减少网络流量.这篇博客中,将介绍如何在WPF ListView中实 ...
- 【C#/WPF】ListView的MVVM例子,及禁止拖动ListView的头部Header
一个ListView的MVVM简单例子: <ListView ItemsSource="{Binding GoodsList}" Margin="0,10,0,10 ...
- Mvvm绑定datagrid或listview的selectItems的方法[转]
单选,很简单,将SelectedItem与ViewModel的属性进行双向绑定就OK了 多选,由于ListView的SelectedItems不能进行绑定,需要将ListView的SelectionC ...
- WPF中常用控件(TreeView, ComboBox, DataGrid, ListView)使用MVVM模式绑定的demo
之前几篇关于TreeView的博客中只是贴了源代码,并没有把整个项目上传到github.最近就想着把我常用的几个控件做成一个demo,这样也方便自己以后查看.本人也是WPF新手,但是我并没有打算就往这 ...
- 背水一战 Windows 10 (25) - MVVM: 通过 x:Bind 实现 MVVM(不用 Command)
[源码下载] 背水一战 Windows 10 (25) - MVVM: 通过 x:Bind 实现 MVVM(不用 Command) 作者:webabcd 介绍背水一战 Windows 10 之 MVV ...
- 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令
[源码下载] 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令 作者:webabcd ...
- 背水一战 Windows 10 (23) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过 ButtonBase 触发命令
[源码下载] 背水一战 Windows 10 (23) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过 ButtonBase 触发命令 作者:webabcd ...
- MVVM小记
这篇小记源自于codeproject上的一篇文章 http://www.codeproject.com/Articles/100175/Model-View-ViewModel-MVVM-Explai ...
随机推荐
- Pod 的安装
1.如果之前已经安装过的 gem list --local | grep cocoapods 会看到如下输出: cocoapods (1.1.1)cocoapods-deintegrate (1.0. ...
- angularJS 学习之路
AngularJS 通过 ng-directives 扩展了 HTML. ng-app 指令定义一个 AngularJS 应用程序.也就是angularjs作用的入口 作用在什么标签或者整个body ...
- arm指令周期
1.大部分算术运算和逻辑运算指令都是单周期的,例如加法.减法.位级运算和移位 2.乘法指令根据操作数位数的不同,从2-5个周期都有可能. 3.无条件跳转语句和跳转语句成功跳转,需要重新填充流水线,因此 ...
- java:StringBuffer字符处理对象
1.添加字符 public class StringBufferDemo { public static void main(String args[]) { StringBuffer sbf = n ...
- ireport5.6+jasperreport6.3开发(二)--web开发的配置
ireport5.6只能编译出*.jasper的报表包,最终报表需要被输出为一个doc html pdf excel等文件,这时就需要jasperreport6.5的库进行配合了. jasperrep ...
- Excel数据批量导入到数据库
1.今天做批量导入网上找了个例子,改了改,运行起来了.用POI实现Excel的读取,需要jar包. 2.ReadExcel.java读取数据 /** * */ package com.b510.exc ...
- 利用node来下载图片到本地
本文是针对于知道图片地址的下载图片方法. 同时也是我的处男作(额,怪怪的〜);不要在意这些细节. 最近在弄项目迁移,需要把http的链接全换成https的:以前的cms不支持http的协议,然后就 ...
- React初识(按钮点击+输入绑定)
简单按钮点击事件: <!DOCTYPE html><html> <head> <meta charset="utf-8"> ...
- [iOS]浅谈NSRunloop工作原理和相关应用
一. 认识NSRunloop 1.1 NSRunloop与程序运行 那么具体什么是NSRunLoop呢?其实NSRunLoop的本质是一个消息机制的处理模式.让我们首先来看一下程序的入口——main ...
- [HTML/HTML5]9 使用表单
9.1 创建基本表单 表单都具有相同的基础结构.即它都包含表单的的开始标记<form>和结束标记</form>.<input>控件和处理表单的方法.form元素包 ...