zoukankan      html  css  js  c++  java
  • 十二、数据绑定——转换器

    通过上一篇文章,我们可以发现一个问题,我们仅仅给图片赋值了一个路径,然而我们可以最终显示一张图片,这期间我们并没有进行任何的转换。当然,这并不是神出来的,而是.Net框架已经在我们感觉不到的情况下帮我们转换了,但是有些类型还是无法转换的,比如说,bool类型。以下就解决这一问题。也就是要将model(后台)转换成Ui(前台)。

    第一步:定义一个转换器

    说明:(1)示例中IsTip是布尔类型,是Ui;隐藏/显示 是枚举类型,是model

             (2)该类一般定义在工程的Common文件夹下,命名规则是:Ui中的类型+model中的类型+Converter.cs

    public class BoolVisibilityConverter : IValueConverter   //实现转换器接口

        {

            //Convert是将model中的类型转换成Ui中的类型

            public object Convert(object value, Type targetType, object parameter, string language)

            {

                //throw new NotImplementedException();   

              bool b = (bool)value;

                return b ? Visibility.Visible : Visibility.Collapsed;

            }

            //ConvertBack是用于双向绑定,如果不是双向绑定,此方法可以直接抛出异常即可,不用写方法体

            public object ConvertBack(object value, Type targetType, object parameter, string language)

            {

               // throw new NotImplementedException();

                Visibility v = (Visibility)value;  

               return v == Visibility.Visible;  

           }

        }

    第二步:在响应的XAML中

    (1)在根标签中加上 xmlns:别名="suing:工程名.文件夹名",将转换器类引入文件中。例如:xmlns:common="using:Register.Common"

    (2)在根标签之下加上 <Page.Resources>
                                              <别名:转换器名  x:Key="boolVisConverter"></别名:转换器名 >
                                     </Page.Resources>

                      例如      <Page.Resources>
                                               <common:BoolVisibilityConverter x:Key="boolVisConverter"></common:BoolVisibilityConverter>
                                  </Page.Resources>

    (3)在控件中绑定  Visibility="{Binding IsTip,Converter={StaticResource boolVisConverter}}"

  • 相关阅读:
    数据仓库 数据可视化 Hive导出到MySql
    数据仓库 品牌复购率
    数据仓库 转化率及漏斗分析
    数据仓库 GMV成交总额
    数据仓库 DWS层之用户行为宽表
    数据仓库 业务数仓 DWD层
    数据仓库 业务数仓 ODS层
    数据仓库 表的分类与同步策略
    数据仓库 最近七天内连续三天活跃用户数
    CF505E Mr. Kitayuta vs. Bamboos 二分+贪心
  • 原文地址:https://www.cnblogs.com/suinuaner/p/twelve1.html
Copyright © 2011-2022 走看看