WPF绑定各种数据源之object数据源
一、WPF绑定各种数据源索引
Binding的基础可参考WPF 绑定基础
二、WPF绑定各种数据源之object数据源
前台代码:
<Window.Resources> <Con:BackgroundConverter x:Key="BackgroundConverter"/> </Window.Resources> |
用ListView绑定object数据源
<ListView Height="262" Margin="0,0,45,51" VerticalAlignment="Bottom" ItemsSource="{Binding}" Name="listView2" HorizontalAlignment="Right" Width="310"> <ListView.View> <GridView> <GridViewColumn Header="编号" DisplayMemberBinding="{Binding Path=ID}" Width="100" /> <GridViewColumn Header="姓名" DisplayMemberBinding="{Binding Path=Name}" Width="100"/> <GridViewColumn Header="年龄" Width="100"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Grid.Column="1" Text="{Binding Path=Age}" Foreground="{Binding Path=Age, Converter={StaticResource BackgroundConverter}}"/> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> |
后台代码:
public class BackgroundConverter : IValueConverter { #region IValueConverter Members public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { Color color = new Color(); int num = int.Parse(value.ToString()); if (num > 100) color = Colors.Yellow; else if (num < 50) color = Colors.LightGreen; else color = Colors.LightPink; return new SolidColorBrush(color); } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } #endregion } |
下面是Person类
public class Person { private string _ID; private string _name; private string _age; public string ID { get; set; } public string Name { get; set; } public int Age { get; set; } } |
//下面是获得数据源,当然数据源可以是数据库中读出的数据,此处直接创建数据源
//创建数据源,当然也可以从数据库中获得数据源private IList<Person> getPersonInfo() { IList<Person> pList = new List<Person>(); for (int i = 40; i < 60; i++) { Person p = new Person(); p.ID = "ID"+i; p.Name = "Nmae"+i; p.Age = i+1; pList.Add(p); } return pList; }public Window1() { InitializeComponent(); listView2.DataContext = getPersonInfo(); } |
效果图:
2. 使用Object的另一种方式
<Window.Resources> <Con:BackgroundConverter x:Key="BackgroundConverter"/> <ObjectDataProvider x:Key="myPerson" ObjectType="{x:Type Con:Person}" MethodName="getPersonInfo"/></Window.Resources> |
此时的myPerson对象数据源在是Person类中的getPersonInfo方法。
(【补充】如果getPersonInfo在不同的类库中,则用如下方式
<ObjectDataProvider x:Key="myPerson2" ObjectType="{x:Type ClassLibrary1:Person}" MethodName="getPersonInfo"/> |
使用,ClassLibrary1是类库的名称。并添加命名空间
xmlns:ClassLibrary1="clr-namespace:ClassLibrary1;assembly=ClassLibrary1" |
)
<ListView Height="262" Margin="0,0,45,51" DataContext="{StaticResource myPerson}" VerticalAlignment="Bottom" ItemsSource="{Binding}" Name="listView2" HorizontalAlignment="Right" Width="310"> <ListView.View> <GridView> <GridViewColumn Header="编号" DisplayMemberBinding="{Binding Path=ID}" Width="100" /> <GridViewColumn Header="姓名" DisplayMemberBinding="{Binding Path=Name}" Width="100"/> <GridViewColumn Header="年龄" Width="100"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Grid.Column="1" Text="{Binding Path=Age}" Foreground="{Binding Path=Age, Converter={StaticResource BackgroundConverter}}"/> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> |
http://www.cnblogs.com/linlf03/archive/2011/09/06/2168598.html
WPF绑定各种数据源之object数据源的更多相关文章
- WPF绑定各种数据源之xml数据源
一.WPF绑定各种数据源索引 WPF 绑定各种数据源之Datatable WPF绑定各种数据源之object数据源 WPF绑定各种数据源之xml数据源 WPF绑定各种数据源之元素控件属性 Bindin ...
- WPF 绑定以基础数据类型为集合的无字段名的数据源
WPF 绑定以基础数据类型为集合的无字段名的数据源 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-21 我们在控件的数据绑定 ...
- WPF快速入门系列(4)——深入解析WPF绑定
一.引言 WPF绑定使得原本需要多行代码实现的功能,现在只需要简单的XAML代码就可以完成之前多行后台代码实现的功能.WPF绑定可以理解为一种关系,该关系告诉WPF从一个源对象提取一些信息,并将这些信 ...
- WPF绑定的ListBox获取ListBoxItem及GoToState应用
现公司项目中需要制作一个扇形菜单,菜单项是用ListBox重写Style实现的,其数据是绑定的.菜单的每一项都有Normal,MouseOver和Selected三种状态,这三种状态当然可以通过鼠标移 ...
- 【转】【WPF】WPF绑定用法
一.简介 为了后面行文顺利,在进入正文之前,我们首先对本文所涉及到的绑定知识进行简单地介绍.该节包含绑定的基本组成以及构建方式. WPF中的绑定完成了绑定源和绑定目标的联动.一个绑定常常由四部分组成: ...
- WPF - 绑定及惯用法(一)
写在前面:这仍然是一些没有经过严格审阅的文字.虽然我的确执行了初稿.复稿以及审阅等一系列用以保证文章质量的方法,但是仍然担心其中是否有错误.希望您能帮助指出,以在下一次我在版本更新时进行修正.所有的错 ...
- 43. Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】
[视频&交流平台] àSpringBoot视频 http://study.163.com/course/introduction.htm?courseId=1004329008&utm ...
- Spring Boot 动态数据源(多数据源自己主动切换)
本文实现案例场景: 某系统除了须要从自己的主要数据库上读取和管理数据外.另一部分业务涉及到其它多个数据库,要求能够在不论什么方法上能够灵活指定详细要操作的数据库. 为了在开发中以最简单的方法使用,本文 ...
- (43). Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】
在上一篇我们介绍了多数据源,但是我们会发现在实际中我们很少直接获取数据源对象进行操作,我们常用的是jdbcTemplate或者是jpa进行操作数据库.那么这一节我们将要介绍怎么进行多数据源动态切换.添 ...
随机推荐
- numpy split()
numpy.split(ary, indices_or_sections, axis=0)[source] Split an array into multiple sub-arrays. 将一个ar ...
- 紫书第五章训练2 F - Compound Words
F - Compound Words You are to find all the two-word compound words in a dictionary. A two-word compo ...
- 九度oj 题目1019:简单计算器
题目描述: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 输入: 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之 ...
- MySQL容量规划之tcpcopy应用之道
官方文档:https://github.com/session-replay-tools/mysql-replay-module tcpcopy可以将正式环境上来自客户端的请求复制一份到测试端并复现, ...
- 【Luogu】P3391文艺平衡树(Splay)
题目链接 ddosvoid和自为风月马前卒教了我这道题 他们好强啊 如果我们要反转区间[l,r] 我们首先把l的前驱旋转到根节点 再把r的后继旋转到根节点的右儿子 那么此时根节点的右儿子的左儿子所代表 ...
- Codeforces Round #358 (Div. 2)——C. Alyona and the Tree(树的DFS+逆向思维)
C. Alyona and the Tree time limit per test 1 second memory limit per test 256 megabytes input standa ...
- BZOJ 2693 jzptab ——莫比乌斯反演
同BZOJ 2154 但是需要优化 $ans=\sum_{d<=n}d*\sum_{i<=\lfloor n/d \rfloor} i^2 *\mu(i)* Sum(\lfloor \fr ...
- Redis的持久化——AOF
上一篇博文给大家介绍了redis持久化的方式之一RDB,其中说到过RDB的缺陷是可能会导致数据丢失严重,所以redis的作者 由于强迫症又开发出了AOF来你补这一不足.好接下来我将为大家介绍AOF. ...
- [暑假集训--数位dp]hdu3652 B-number
A wqb-number, or B-number for short, is a non-negative integer whose decimal form contains the sub- ...
- Python入门--3--操作符
一.算数操作符 有:+.-.*././/.%.**(幂) a= 3; a = 3+1; #等同于a += 1 这相当与a加一 同样 也可以-.*./.// 需要注意的是//是直接舍 ...