WPF  之Converter

Leo

在我们做项目的时候,经常会遇见这样的事情:

在数据中我们定义的是true,false 而在现实的时候则可能要求男,女

我们还得能定义成了0,1,2,3,4,5,6

而在显示的时候确要求我们显示成了周日,周一….周六

那么我们究竟应该怎样做来进行转换呢?方法很多,在只有true或false的时候直接写

If(gender)

Else

那么想0,1,2,。。。借助这个思想就是

Switch(week)

{

Case 1:

周一;

Break;

Case 2:

……..

Case 0:

周日;

Break;

}

在后台这样转换时可以了,可是在WPF中都是进行绑定的啊,了,我们还得封装一个实体,然后先转换了在绑定,如果这么做的话就会有些ugly…..头痛…

还不错:Converter可以帮我们解决这样的问题:

转换的思想不便,只是有了Converter我们只要直接集成IConverter,在前台就可以进行绑定了。

如下所示:

[ValueConversion(typeof(int), typeof(String))]

public class WeekConverter : IValueConverter

{

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)

{

int index = (int)value;

string result = null;

switch (index)

{

case 1:

result = "星期一";

break;

case 2:

result = "星期二";

break;

case 3:

result = "星期三";

break;

case 4:

result = "星期四";

break;

case 5:

result = "星期五";

break;

case 6:

result = "星期六";

break;

case 0:

result = "星期日";

break;

}

return result;

}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)

{

string index = (string)value;

int result = -1;

switch (index)

{

case "周一":

result = 1;

break;

case "周二":

result = 2;

break;

}

return result;

}

}

<Window x:Class="WorkTimeManager.Test"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:local="clr-namespace:WorkTimeManager"

Title="MainWindow" Height="350" Width="525" x:Name="mainWindow">

<Window.Resources>

<local:WeekConverter  x:Key="weekConvert"/>

</Window.Resources>

<Grid>

<ListView x:Name="lstBox" ItemsSource="{Binding ElementName=Test,Path=ListData}">

<ListView.ItemTemplate>

<DataTemplate>

<Border Width="300" Height="30">

<StackPanel Orientation="Horizontal">

<TextBlock FontSize="12" Text="今天是:" />

<TextBlock FontSize="12" Text="{Binding Converter={StaticResource weekConvert}}"/>

<TextBlock FontSize="12" Text="数据库中的值是:"/>

<TextBlock FontSize="12" Text="{Binding}"/>

</StackPanel>

</Border>

</DataTemplate>

</ListView.ItemTemplate>

</ListView>

</Grid>

</Window>

在后台对数据进行一下绑定或者设置成属性都可以的!

总之,方便多了!

===========================================================

 北京]北京-梅子(771432311)  19:15:20
数据库中存储的是数字 想在页面上显示 0=> 合格 要如何实现?谁帮忙提示提示   
空空空(410502460)  19:17:16
VALUECONVERTER
[甘肃]轩辕(904417059)  19:17:24
估计link可以
提出来单独处理一下
Rolk(383628918)  19:18:01
Converter 
 
 
 大神 我看好你哟 
奋斗(283309167)  19:16:41
public class UserStatusConverter : IValueConverter
    {

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value != null)
            {
                return (((int)value) == 1 ? "启用" : "停用");
            }
            else
            {
                return DependencyProperty.UnsetValue;
            }
            
        }

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (targetType != typeof(int)) throw new InvalidOperationException("转换的值必须是字符!");
            return (value.ToString() == "启用" ? 1 : 0);
        }
    }
别大神大神的,我是菜鸟
<telerik:GridViewDataColumn Header="用户状态"
Width="80"
DataMemberBinding="{Binding Use_Status,Converter={StaticResource UserStatusConverter},Mode=OneWay}" />
这如果还不明白,我就无语了
奋斗(283309167)  19:18:10
其实你也可以弄个参照数据库表,根据你0,对照为合格也可以做到
旅人   滴答滴(771432311)  19:18:57
我正努力看懂。。。非常感谢您的提示 。。。 

WPF 之Converter的更多相关文章

  1. [WPF 容易忽视的细节] —— Exception in WPF's Converter

    前言: 在WPF中,Converter是我们经常要用到的一个工具,因为XAML上绑定的数据不一定是我们需要的数据. 问题: 在Converter中抛出一个异常导致程序崩溃,而且是在对未捕获异常进行集中 ...

  2. WPF中Converter的使用

    WPF中Converter的用于对数据的转换.以下实例将实现将数据中的性别属性的转换(0:男,1:女). 1.创建SexConverter.cs类,并实现IValueConverter接口 publi ...

  3. WPF之Converter

    1.Converter介绍 在WPF应用程序中经常遇到类似这样的问题,在定义的类中用的bool类型的值,但是界面上某个控件的显示属性是Visibility的枚举类型的,解决这个问题可以简单在定义的类中 ...

  4. 年度巨献-WPF项目开发过程中WPF小知识点汇总(原创+摘抄)

    WPF中Style的使用 Styel在英文中解释为”样式“,在Web开发中,css为层叠样式表,自从.net3.0推出WPF以来,WPF也有样式一说,通过设置样式,使其WPF控件外观更加美化同时减少了 ...

  5. WPF converter

    单值转换器 将单一值转换为特定类型的值,以日期转换为例如下: 1.定制DateConverter类,其中当值从绑定源传播给绑定目标时,调用方法Convert. 1 public class DateC ...

  6. Silverlight或WPF动态绑定图片路径问题,不用Converter完美解决

    关于Silverlight或WPF动态绑定图片路径问题,不用Converter完美解决, 可想,一个固定的字符串MS都能找到,按常理动态绑定也应该没问题的,只需在前面标记它是一个Path类型的值它就能 ...

  7. WPF Converter 使用复杂参数的方法

    Step 1在WPF的C#代码文件中给定义复杂类型的变量,并给其赋值:Sample code: List<User>lsUser=....Setp 2在 C#代码对应的XAML 中将此复杂 ...

  8. WPF converter(包含传递复杂参数)

    单值转换器 将单一值转换为特定类型的值,以日期转换为例如下: 1.定制DateConverter类,其中当值从绑定源传播给绑定目标时,调用方法Convert. 1 public class DateC ...

  9. 【WPF】wpf用MultiBinding解决Converter需要动态传参的问题,以Button为例

    原文:[WPF]wpf用MultiBinding解决Converter需要动态传参的问题,以Button为例       用Binding并通过Converter转换的时候,可能偶尔会遇到传参的问题, ...

随机推荐

  1. RRAS

    远程访问控制是Windows NT.Win200x Server提供的一种远程服务,它允许用户从远端通过拨号连接连接到一个本地的计算机网络,一旦建立了连接,就相当于处在了本地的LAN中,从而可以使用各 ...

  2. Spring 3.0 注解

    原文 :http://www.blogjava.net/ashutc/archive/2011/04/14/348270.html 另两 参考博客 : http://kingtai168.iteye. ...

  3. HDU 1242 dFS 找目标最短路

    //多个起点,要最短得目标,不妨倒过来从目标出发,去找最近的点更新!!!!!!递归时思路要清楚 #include<iostream> #include<cstring> usi ...

  4. Codeforces 667D World Tour【最短路+枚举】

    垃圾csdn,累感不爱! 题目链接: http://codeforces.com/contest/667/problem/D 题意: 在有向图中找到四个点,使得这些点之间的最短距离之和最大. 分析: ...

  5. json常见用法-loads、jumps、load、jump

    这一篇博客的目的主要是想说明一个问题:干什么事情要抓住重点,不要力求完美,不要追求那种'大而全'的办事方式,因为时间是有限的,而客观事物(这里主要指技术方面的知识)是无限的,so,anyway! 1. ...

  6. CODEVS_1227 方格取数2 网络流 最小费用流 拆点

    原题链接:http://codevs.cn/problem/1227/ 题目描述 Description 给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij <= 1000)现在从(1, ...

  7. Atcoder Grand Contest 023

    A 略 B 略 C(计数) 题意: 有n个白球排成一行,故有n-1个空隙,我可以给一个空隙对应的两个白球都涂黑.n-1个空隙的一个排列就对应着一个涂黑顺序,定义这个涂黑顺序的价值是“将所有n个球都涂黑 ...

  8. java list实现树形结构

    1.javabean import java.util.List; public class TreeNode { private String id; private String parentId ...

  9. Go -- 判断chan channel是否关闭的方法

    如果不判断chan是否关闭 Notice: 以下代码会产生死循环 代码如下: package main import ( "fmt" ) func main() { c := ma ...

  10. 解密优秀博士成长史 ——微软亚洲研究院首届博士生学术论坛Panel讨论经验总结

    编者按:有人说“一入博门深似海”,读博前应该做好哪些准备?作为一名博士生,应该有怎样的学术或职业规划?导师还是老板?怎样在师生关系上做到双赢?你是导师心目中优秀的博士生吗?相信以上问题在很多同学心中萦 ...