zoukankan      html  css  js  c++  java
  • WPF中的MultiBinding

        在WPF中进行数据绑定时,有时会有这种需求:如TextBlock的Text属性,可能希望绑定到两个或以上的数据源,最后得到的Text显示是由这几个数据源按照自己的设计组合而成,即MultiBinding功能。这里记录下两种用法(绑定的概念这里就不列了,直接上关键代码):


    1、在XAML中使用MultiBinding+StringFormat

    <TextBlock>
        <TextBlock.Text>    
            <MultiBinding StringFormat="{}{0} + {1}">
                <Binding Path="Name" />
                <Binding Path="ID" />
            </MultiBinding>
        </TextBlock.Text>
    </TextBlock>

    这里的 StringFormat="{}{0} + {1}" ,中的第一个{}是有必要存在的。最后得到的显示也就是<Name>+<ID>。


    2、在XAML中使用MultiBinding+Converter


    <Windows.Resourses>
         <my:NameConverter x:key="myNameConverter"/>
    </Windows.Resourses>
    ==============================================
    <TextBlock>
       <TextBlock.Text>
           <MultiBinding Converter="{StaticResource myNameConverter}"
                         ConverterParameter="FormatLastFirst">
              <Binding Path="FirstName"/>
              <Binding Path="LastName"/>
           </MultiBinding>
       </TextBlock.Text>
    </TextBlock>
    
    =======================================================
    =======================================================
     public class NameConverter : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            string name;
    
            switch ((string)parameter)
            {
                case "FormatLastFirst":
                    name = values[1] + ", " + values[0];
                    break;
                case "FormatNormal":
                    default:
                    name = values[0] + " " + values[1];
                    break;
            }
    
            return name;
        }
    
        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            string[] splitValues = ((string)value).Split(' ');
            return splitValues;
        }
    }
    

    在Converter中进行数据源的精细组合。可参见MSDN上的介绍,这儿是另一个例子。


    做个记录,免得以后要用时忘了。


    版权所有,转载请注明出处 http://www.cnblogs.com/read-the-spring-and-autumn-annals-in-night/
  • 相关阅读:
    Linux安装Memcached服务
    [Shell]随机数
    配置VNC
    Linux挂在ntfs格式的U盘
    大数据入门第五天——离线计算之hadoop(上)概述与集群安装
    Hexo+Github博客搭建
    大数据入门第四天——基础部分之轻量级RPC框架的开发
    大数据入门第三天——基础补充与ActiveMQ
    大数据入门第二天——基础部分之zookeeper(下)
    PowerDesigner安装与使用教程
  • 原文地址:https://www.cnblogs.com/read-the-spring-and-autumn-annals-in-night/p/12041998.html
Copyright © 2011-2022 走看看