WPF MultiBinding 和 IMultiValueConverter
MultiBinding,描述附加到单个绑定目标属性的Binding对象的集合。可以指定多个数值绑定。
IMultiValueConverter通过转换器使用MultiBingding对象,该对象讲根据这些绑定的值转换生成绑定目标的最终值(效果)。
可以看一下微软给出的案例:
public class NameConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
string name; switch ((string)parameter)
{
case "FormatLastFirst":
name = values[] + ", " + values[];
break;
case "FormatNormal":
default:
name = values[] + " " + values[];
break;
} return name;
} public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
string[] splitValues = ((string)value).Split(' ');
return splitValues;
}
}
在资源中定义引用转换
<c:NameConverter x:Key="myNameConverter"/>
<TextBlock Name="textBox2" DataContext="{StaticResource NameListData}">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myNameConverter}"
ConverterParameter="FormatLastFirst">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Orlando Bloom Bloom, Orlando
亦或者 如果股票买卖数据中需要定义红涨绿跌,则会对比昨收价对比实时价格
public class QDataColorConvert : IMultiValueConverter
{
/// 需传入一组对象,(基础值 比对值)
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double proNum = Math.Round((double)values[], );//目前实时阶段性价格
double basepronum = Math.Round((double)values[], );//昨收价格 if (proNum > basepronum)
{
return new SolidColorBrush(Color.FromArgb(, , , ));
}
else if (proNum < basepronum)
{
return new SolidColorBrush(Color.FromArgb(, , , ));
}
return new SolidColorBrush(Color.FromArgb(, , , ));
} public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
如何使用呢?
<C:QDataColorConvert x:Key="Qdataconverter"/>
<TextBlock Text="{Binding Path=Newprice}">
<TextBlock.Foreground>
<MultiBinding Converter="{StaticResource Qdataconverter}">
<Binding Path="Baseprice"/>
<Binding Path="Newprice"/>
</MultiBinding>
</TextBlock.Foreground>
</TextBlock>

Baseprice;Newprice就是数据模型中的实时数据(依赖属性),这样就可以做对比。 当然 这里的Binding 与IValueConverter这里就只用到当个数据绑定,单个对应值转换。
这个就是介绍的WPF的MultiBinding 和 IMultiValueConverter的简短文字
希望和大家多多的交流沟通,共同进步。 谢谢!
WPF MultiBinding 和 IMultiValueConverter的更多相关文章
- 【转】WPF MultiBinding 和 IMultiValueConverter
WPF MultiBinding 和 IMultiValueConverter 时间 2015-02-02 19:43:00 博客园精华区 原文 http://www.cnblogs.com/wo ...
- WPF多值绑定及多值转换(MultiBinding和IMultiValueConverter)
WPF可以使用MultiBinding进行多值绑定,使用IMultiValueConverter进行多值转换 例: (1)转换器 public class ContentConverter : IMu ...
- WPF MultiBinding,多值转化器IMultiValueConverter,自制调色板 palette
public class RGBConverter : IMultiValueConverter { //正向修改,整合颜色值 public object Convert(object[] value ...
- WPF MultiBinding后台绑定动态属性 属性改变不调用Convert的问题
一开始的写法: MultiBinding mb = new MultiBinding(); Binding b1 = new Binding(); b1.ElementName = "tex ...
- wpf一些例子
相关知识点:WPF - Adorner WPF Diagram Designer http://www.codeproject.com/Articles/484616/MVVM-Diagram-Des ...
- (WPF) 基本题
What is WPF? WPF (Windows Presentation foundation) is a graphical subsystem for displaying user inte ...
- 准备.Net转前端开发-WPF界面框架那些事,值得珍藏的8个问题
题外话 不出意外,本片内容应该是最后一篇关于.Net技术的博客,做.Net的伙伴们忽喷忽喷..Net挺好的,微软最近在跨平台方面搞的水深火热,更新也比较频繁,而且博客园的很多大牛也写的有跨平台相关技术 ...
- WPF 简易手风琴 (ListBox+Expander)
概述 之前听说很多大神的成长之路,几乎都有个习惯--写博文,可以有效的对项目进行总结.从而提高开发的经验.所以初学WPF的我想试试,顺便提高一下小学作文的能力.O(∩_∩)O哈哈~ 读万卷书不如行万里 ...
- WPF绑定功能常用属性介绍
1.Mode 绑定中数据流的方向(enum BindingMode) 目标属性指的是控件的属性 (1)TwoWay 更改源属性或目标属性时,会自动更新另一方.适用于可编辑窗体 例:TextBox (2 ...
随机推荐
- hbase操作的问题
写了一个java程序,需要向hbase中写入大量的数据,但是这个程序执行一半就报错, 问题是,此时已经写入了很多数据. 查看jps,发现hmaster进程崩溃了. 基于以上信息,发现是在程序中,链接h ...
- linux网卡速率和双工模式的配置
linux网卡速率和双工模式的配置 (2012-09-06 14:39:57) 转载▼ 标签: 科技 网络接口 协商 网卡 工具 it 分类: Linux 改变网络接口的速度和协商方式的工具miito ...
- [转载]实战Linux下VMware虚拟机根目录空间扩充
[转载]实战Linux下VMware虚拟机根目录空间扩充 (2011-07-31 21:34:34) 转载▼ 标签: 转载 原文地址:实战Linux下VMware虚拟机根目录空间扩充作者:shar ...
- hdoj 2112 HDU Today
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=2112 分析:多了一个地方的条件,用map来映射地点编号,Dijkstra求解即可 //2013-10- ...
- **tomcat简介之web.xml详解
一.Tomcat背景 自从JSP发布之后,推出了各式各样的JSP引擎.Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JS ...
- SVN与Eclipse整合
SVN与Eclipse整合 下载SVN插件(http://subclipse.tigris.org) 我们使用版本eclipse_svn_site-1.6.5.zip 解压到一个文件夹中 进入ecli ...
- python网络爬虫(一):网络爬虫科普与URL含义
1. 科普 通用搜索引擎处理的对象是互联网的网页,目前网页的数量数以亿计,所以搜索引擎面临的第一个问题是如何设计出高效的下载系统,已将海量的网页下载到本地,在本地形成互联网网页的镜像.网络爬虫 ...
- SqlServer 如何以脚本形式导出数据
你是否遇到这样的情况,在公司导出一个数据库,回到家里导入自己的电脑里,然后发现数据库版本不匹配,这真是一个悲剧. 那么以下这个方法就可以避免这个悲剧,将数据以脚本的形式导出,这样灵活性更好. 1.选择 ...
- sql 随笔 2015-07-02
sql 自定义函数 --检查函数是否存在 if exists (select * from dbo.sysobjects where id = object_id(N'dbo.pTitleCase') ...
- sql 2005 同义词
--> Title : SQL Server2005 Synonym的使用 --> Author : wufeng4552 --> Date : 2009-10-30 1.Sy ...