WPF MultiBinding 和 IMultiValueConverter 时间 2015-02-02 19:43:00  博客园精华区 原文  http://www.cnblogs.com/woodenmancool/p/4268539.html 主题 WPF MultiBinding,描述附加到单个绑定目标属性的Binding对象的集合.可以指定多个数值绑定. IMultiValueConverter通过转换器使用MultiBingding对象,该对象讲根据这些绑定的值转换生成绑定目标的…
MultiBinding,描述附加到单个绑定目标属性的Binding对象的集合.可以指定多个数值绑定. IMultiValueConverter通过转换器使用MultiBingding对象,该对象讲根据这些绑定的值转换生成绑定目标的最终值(效果). 可以看一下微软给出的案例: public class NameConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, obj…
WPF可以使用MultiBinding进行多值绑定,使用IMultiValueConverter进行多值转换 例: (1)转换器 public class ContentConverter : IMultiValueConverter { //源属性传给目标属性时,调用此方法ConvertBack public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if…
public class RGBConverter : IMultiValueConverter { //正向修改,整合颜色值 public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { if(values==null || values.Length<1) { return null; } byte r = System.Convert.ToByte(value…
一开始的写法: MultiBinding mb = new MultiBinding(); Binding b1 = new Binding(); b1.ElementName = "textBox1"; b1.Path = "Tag"; Binding b2 = new Binding(); b2.ElementName = "textBox1"; b2.Path = "Uid"; mb.Bindings.Add(b1);…
相关知识点:WPF - Adorner WPF Diagram Designer http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer 翻译好的 http://www.cnblogs.com/zhoujg/archive/2009/11/23/1608913.html http://www.cnblogs.com/zhoujg/archive/2010/08/17/1801271.html http://www.cnbl…
What is WPF? WPF (Windows Presentation foundation) is a graphical subsystem for displaying user interfaces, documents, images, movies etc in windows application. What is the need of WPF when we had windows forms? Hide    Copy Code Remember: - ABCDEFG…
题外话 不出意外,本片内容应该是最后一篇关于.Net技术的博客,做.Net的伙伴们忽喷忽喷..Net挺好的,微软最近在跨平台方面搞的水深火热,更新也比较频繁,而且博客园的很多大牛也写的有跨平台相关技术的博客.做.Net开发块五年时间,个人没本事,没做出啥成绩.想象偶像梅球王,年龄都差不多,为啥差别就这么大.不甘平庸,想趁机会挑战下其他方面的技术,正好有一个机会转前段开发. 对于目前正在从事或者工作中会用到WPF技术开发的伙伴,此片内容不得不收藏,本片介绍的八个问题都是在WPF开发工作中经常使用到…
概述 之前听说很多大神的成长之路,几乎都有个习惯--写博文,可以有效的对项目进行总结.从而提高开发的经验.所以初学WPF的我想试试,顺便提高一下小学作文的能力.O(∩_∩)O哈哈~ 读万卷书不如行万里路,实践是最好的导师!最近在学习WPF,也尝试着做了一些小Demo,但并没有真正的使用WPF的开发模式--数据推动UI,最近偶然的机会也是工作需求,就尝试着写了一个简易的手风琴控件, 因为初学的原因,可能在逻辑上,代码上有些欠缺,还请大神们多多指点,在这里先感谢各位!(下面是效果图) 思路 剖析效果…
1.Mode 绑定中数据流的方向(enum BindingMode) 目标属性指的是控件的属性 (1)TwoWay 更改源属性或目标属性时,会自动更新另一方.适用于可编辑窗体 例:TextBox (2)OneWay 更改源属性时会自动更新目标属性.适用于隐形只读窗体 例:Label 可避免 System.Windows.Data.BindingMode.TwoWay 绑定模式的系统开销 (3)OneTime 在应用程序启动或数据上下文更改时,更新绑定目标 如果你在适合使用当前状态的快照或数据实际…
1. converterparameter不是依赖属性,所以不能用binding. 2. 可以把converter 的接口 IValueConverter改为 IMultiValueConverter,实现多个  MultiBinding 3. IMultiValueConverter代码,例如: public class MultiBoolToColorConverter : IMultiValueConverter { public object Convert(object[] value…
注: 需要继承IMultiValueConverter接口,接口使用和IValueConverter逻辑相同. 一.MultiBinding+Converter 多值绑定及多值转换实例 当纵向流量大于横向流量时指示灯应为绿色,当纵向流量小于横向流量时指示灯应为红色,否则指示灯为黄色. 1.定制ColorConverter类,此时Convert中参数是object[] values,values[0]对应MultiBinding中的第一个Binding值,这里是纵向流量值,依此类推,可以在Mult…
以下代码实现了DataGrid的简单绑定List数据源 重点要提一下的是,绑定List数据源,但是不能直接用List.比如下面的代码,使用List<GridItem>只能实现数据修改的绑定,但是数据添加,删除都无法实现双向绑定.所以这里要改用ObservableCollection<GridItem>,其他代码都不用改.只要类型改下即可,WPF内部已经实现了添加,删除等的双向绑定功能. 接下去,就直接上代码了.... 1.Model public class GridModel {…
应用场景 我想把View层的一个布局控件和功能按钮传到ViewModel层,达到动态变更布局,同时灵活获取功能按钮的属性,让View和ViewModel完全分离,而不受View层影响. 最后我想到使用IMultiValueConverter实现多参传入ViewModel层来解决,不知道还有没有更好的办法? 基本原理:要将值转换器与 MultiBinding 关联,请创建一个实现 IMultiValueConverter 接口的类,然后实现 Convert 和 ConvertBack 方法. 集合…
当wpf使用multibinding时, 其内部的validaterule的value 是其多个Binding的值, 要根据情况去验证, 还有就是在做IMultiConverter的ConvertBack时注意TargetType 如: 以下是一个Textbox通过MultiBinding绑定到后台 的字段, 以及前台的一个radiobutton, 该textbox有个validaterule.   <TextBox x:Name="txtPatientWeight" TextW…
原文:[WPF]wpf用MultiBinding解决Converter需要动态传参的问题,以Button为例       用Binding并通过Converter转换的时候,可能偶尔会遇到传参的问题,一般通过设置xaml中的BindingParameter属性来给Converter传递参数.       但是这个BindingParameter只支持已经定义好的资源类型(Resource),不支持int,Object等类型,在BindingParameter中也无法再次通过Binding的方法动…
原文:总结:WPF中MultiBinding多值绑定的方法 一.Xaml中绑定代码: <TextBlock  Grid.Row="5" Grid.Column="3">                                 <TextBlock.Text>                                     <MultiBinding Converter="{StaticResource Mult…
看一个例子,FontFamily="Trebuchet MS, GlobalSansSerif.CompositeFont" .这样一条简单的语句,熟悉WPF的人在xaml中可能经常使用.问题是为什么,WPF能将一个string类型的值,赋值给FontFamily类型. 答案:WPF团队在实现XAML语言的时候,为了使用户能像使用HTML语法一样方便,在WPF中集成了很多的转换器,它们能将String值转化为各种类型,赋值给Control的各个属性. 进一步讨论,本人使用C#4年,WP…
wpf 拿到某个control的multibinding以及其中每个Binding 1. 拿到multibinding      MultiBindingExpression mbe = BindingOperations.GetMultiBindingExpression((child as TextBox), TextBox.TextProperty); 2. 拿到其中每个Binding的Path        Binding bd = mbe.ParentMultiBinding.Bind…
一.前言 ​ 有时候 UI 需要显示的信息由不止一个数据来源决定,这时候就需要使用 MultiBinding ,即多路 Binding. ​ MultiBinding 与 Binding 一样均以 BindingBase 为基类,因此,能使用 Binding 的地方都能够使用 MultiBinding. 二.MultiBinding 的使用 ​ 例如,我们有如下需求: ​ 第1.2个 TextBox 输入用户名,要求内容一致: ​ 第3.4个 TextBox 输入邮箱,要求内容一致: ​ 当满足…
MultiBinding 与 Binding 一样继承自 BindingBase,因此可以使用 Binding 的地方都可以使用 MultiBinding. namespace System.Windows.Data { [ContentProperty("Bindings")] public class MultiBinding : BindingBase, IAddChild { ... public Collection<BindingBase> Bindings {…
背景描述:在Number1和Number2文本框中输入数字后,在Answer文本框中会按照下图所示显示. xaml代码: <Window.Resources> <local:MyValueConverter x:Key="MyValueConverter"/> </Window.Resources> <Grid> <StackPanel HorizontalAlignment="Center" VerticalA…
使用MultiBinding的原则:数据源有一个以上: 1. 需求:在一个需要显示的内容中,不同的部分要进行的处理不一样,这时可以使用MultiBinding <TextBlock> <TextBlock.Text> <MultiBinding StringFormat="{}{0} {1} {2}"> <Binding Path="DownloadViewModel.TotalDeviceCount" /> <…
本文主要针对WPF新手,高手可以直接忽略,更希望高手们能给出一些更好的实现思路. 前期一个小任务需要实现一个类似含步骤进度条的控件.虽然对于XAML的了解还不是足够深入,还是摸索着做了一个.这篇文章介绍下实现这个控件的步骤,最后会放出代码.还请高手们给出更好的思路.同时也希望这里的思路能给同道中人一些帮助.话不多说,开始正题. 实现中的一些代码采用了网上现有的方案,代码中通过注释标记了来源,再次对代码作者一并表示感谢. 首先放一张最终效果图. 节点可以被点击 控件会根据绑定的集合数据生成一系列节…
上一篇我们将XAML大概做了个了解 ,这篇将继续学习WPF数据绑定的相关内容 数据源与控件的Binding Binding作为数据传送UI的通道,通过INotityPropertyChanged接口的PropertyChanged事件通知Binding数据属性发生改变 public class Product : INotifyPropertyChanged { private string name; public string Name { get { return name; } set…
说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘>的编排,对内容进行了总结并加入一些个人理解. 模板允许用任何东西完全替换一个元素的可视树,而不影响其他功能,WPF中每个控件的默认外观都定义于模板中(针对不同的Windows主题有不同的默认模板,详见皮肤与主题一节),这个特性对于开发自定义控件也是很重要.控件的功能代码与可视树代码是相分离的,基于这个出发点WPF中控件的大部分属性是控制功能的,而控制外观的属性尽可能的少,因为这个需要放到模板(包括…
原文:http://blog.csdn.net/fwj380891124/article/details/8107646 1,Data Binding在WPF中的地位 程序的本质是数据+算法.数据会在存储.逻辑和界面三层之间流通,所以站在数据的角度上来看,这三层都很重要.但算法在3层中的分布是不均匀的,对于一个3层结构的程序来说,算法一般分布在这几处: A.数据库内部. B.读取和写回数据. C.业务逻辑. D.数据展示. E.界面与逻辑的交互. A,B两部分的算法一般都非常稳定,不会轻易去改动…
一.校验 一般需要对target上的值进行校验. xaml: <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Simple Bindin…
1,Data Binding在WPF中的地位 程序的本质是数据+算法.数据会在存储.逻辑和界面三层之间流通,所以站在数据的角度上来看,这三层都很重要.但算法在3层中的分布是不均匀的,对于一个3层结构的程序来说,算法一般分布在这几处: A.数据库内部. B.读取和写回数据. C.业务逻辑. D.数据展示. E.界面与逻辑的交互. A,B两部分的算法一般都非常稳定,不会轻易去改动,复用性也很高:C处与客户需求最紧密,最复杂,变化最大,大多少算法都集中在这里.D,E负责UI和逻辑的交互,也占有一定量的…
单值转换器 将单一值转换为特定类型的值,以日期转换为例如下: 1.定制DateConverter类,其中当值从绑定源传播给绑定目标时,调用方法Convert. 1 public class DateConverter : IValueConverter 2 { 3 public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 4 { 5 return ((DateTime)v…