WPF 之Converter
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>
在后台对数据进行一下绑定或者设置成属性都可以的!
总之,方便多了!
===========================================================
数据库中存储的是数字 想在页面上显示 0=> 合格 要如何实现?谁帮忙提示提示 SC5BVG@Z77TFAZI3REO[}R.gif)
空空空(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的更多相关文章
- [WPF 容易忽视的细节] —— Exception in WPF's Converter
前言: 在WPF中,Converter是我们经常要用到的一个工具,因为XAML上绑定的数据不一定是我们需要的数据. 问题: 在Converter中抛出一个异常导致程序崩溃,而且是在对未捕获异常进行集中 ...
- WPF中Converter的使用
WPF中Converter的用于对数据的转换.以下实例将实现将数据中的性别属性的转换(0:男,1:女). 1.创建SexConverter.cs类,并实现IValueConverter接口 publi ...
- WPF之Converter
1.Converter介绍 在WPF应用程序中经常遇到类似这样的问题,在定义的类中用的bool类型的值,但是界面上某个控件的显示属性是Visibility的枚举类型的,解决这个问题可以简单在定义的类中 ...
- 年度巨献-WPF项目开发过程中WPF小知识点汇总(原创+摘抄)
WPF中Style的使用 Styel在英文中解释为”样式“,在Web开发中,css为层叠样式表,自从.net3.0推出WPF以来,WPF也有样式一说,通过设置样式,使其WPF控件外观更加美化同时减少了 ...
- WPF converter
单值转换器 将单一值转换为特定类型的值,以日期转换为例如下: 1.定制DateConverter类,其中当值从绑定源传播给绑定目标时,调用方法Convert. 1 public class DateC ...
- Silverlight或WPF动态绑定图片路径问题,不用Converter完美解决
关于Silverlight或WPF动态绑定图片路径问题,不用Converter完美解决, 可想,一个固定的字符串MS都能找到,按常理动态绑定也应该没问题的,只需在前面标记它是一个Path类型的值它就能 ...
- WPF Converter 使用复杂参数的方法
Step 1在WPF的C#代码文件中给定义复杂类型的变量,并给其赋值:Sample code: List<User>lsUser=....Setp 2在 C#代码对应的XAML 中将此复杂 ...
- WPF converter(包含传递复杂参数)
单值转换器 将单一值转换为特定类型的值,以日期转换为例如下: 1.定制DateConverter类,其中当值从绑定源传播给绑定目标时,调用方法Convert. 1 public class DateC ...
- 【WPF】wpf用MultiBinding解决Converter需要动态传参的问题,以Button为例
原文:[WPF]wpf用MultiBinding解决Converter需要动态传参的问题,以Button为例 用Binding并通过Converter转换的时候,可能偶尔会遇到传参的问题, ...
随机推荐
- Codeforces983D. Arkady and Rectangles
$n \leq 100000$个矩形,一个一个覆盖在坐标系上,每个颜色都不一样,问最后能看到几种颜色. 由于后面的颜色可以覆盖前面的颜色,可以把颜色与时间联系上,第$i$个矩形颜色$i$来把时间维变成 ...
- 使用selenium抓取淘宝的商品信息
淘宝的页面大量使用了js加载数据,所以采用selenium来进行爬取更为简单,selenum作为一个测试工具,主要配合无窗口浏览器phantomjs来使用. import re from seleni ...
- awk 对简单文本处理试水
#juanjuan是一个文件 [root@localhost c_test]# cat juanjuan , , bffd97d0 , , bffd97cc , , bffd97c8 , , #-F ...
- centos7 搭建hadoop
参考文档:http://blog.csdn.net/xiaoxiangzi222/article/details/52757168 https://waylau.com/centos-7-instal ...
- maven编码gbk的不可映射字符
如图,老是出现这个错误,百度说是打开源文件,更改编码格式,或者是更改File Encodings 的编码格式,或者是更改java compiler --use computer为eclipse, 都不 ...
- (7)ASP.NET WEB服务器控件
1. <body> <form id="form1" runat="server"> <div> <asp:Label ...
- 字符串哈希hash
题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转 ...
- kafka exactly-once
2018年,Apache Kafka以一种特殊的设计和方法实现了强语义的exactly-once和事务性. 这篇文章将讲解kafka中exactly-once和事务操作的原理,具体为 (1)exact ...
- 《深入理解mybatis原理》 MyBatis的二级缓存的设计原理
MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能.本文将全面分析MyBatis的二级缓存的设计原理. 如上图所示,当开一个会话时,一个SqlS ...
- 【Java TCP/IP Socket】深入剖析socket——TCP套接字的生命周期
建立TCP连接 新的Socket实例创建后,就立即能用于发送和接收数据.也就是说,当Socket实例返回时,它已经连接到了一个远程终端,并通过协议的底层实现完成了TCP消息或握手信息的交换. ...