简单转换器
我们可以写一下常用的用于特定转换的转换器
Boolean => Visibility
系统自带的正向转换器
1 | <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" /> |
反向转换器
1 | using System; |
添加引用
1 | <mConverter:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter" /> |
通用值转换器
经常我们在绑定数据的时候需要的数据类型和原数据不同,这时候我们就需要对数据进行转换
工具类
C#
1 | namespace Z.Converters |
使用
1 |
|
颜色
背景
1 | Background="{Binding Path=KYFile, Converter={StaticResource ZCommonConverter}, ConverterParameter='0:#666666|1:#019266|2:#FF001E'}" |
前景色
1 | Foreground="{Binding Path=KYFile, Converter={StaticResource ZCommonConverter}, ConverterParameter='0:#666666|1:#019266|2:#FF001E'}" |
布尔型=>颜色
1 | Background="{Binding Path=Selected, Converter={StaticResource ZCommonConverter}, ConverterParameter='true:#339DFF|other:#ffffff'}" |
边框
边框颜色
1 | BorderBrush="{Binding Path=Rank, Converter={StaticResource ZCommonConverter}, ConverterParameter='1:#FFA639|2:#1584FC|3:#FF7444|other:#EEEEEE'}" |
边框粗细
1 | BorderThickness="{Binding HideOuter, Converter={StaticResource ZCommonConverter}, ConverterParameter='true:1|false:0'}" |
文字
1 | Text="{Binding Path=KYFile, Converter={StaticResource ZCommonConverter}, ConverterParameter='0:未检测|1:正常|2:异常'}" |
显示 Visibility
布尔型
1 | Visibility="{Binding Path=Selected, Converter={StaticResource ZCommonConverter}, ConverterParameter='true:visible|other:collapsed'}" |
数字型
1 | Visibility="{Binding Path=selectIndex, Converter={StaticResource ZCommonConverter}, ConverterParameter='1:visible|other:hidden'}" |
不同状态切换
1 | Visibility="{Binding Path=selectIndex, Converter={StaticResource ZCommonConverter}, ConverterParameter='1:collapsed|other:visible'}" |
图片加载转换器
主要解决加载本地图片内存不释放的问题。
1 | using System; |
引用
1 | <zConverter:StringToImageSourceConverter x:Key="StringToImageSourceConverter" /> |
使用
1 | <Image Source="{Binding Path=Pic, Converter={StaticResource StringToImageSourceConverter}}" Stretch="Fill" /> |
多值转换器
假如有这么一个场景,我们的组件要根据一个百分比根据父组件设置自身的宽度,使用单值绑定的时候是无法实现的,ConverterParameter
中是不能绑定值的。
我们就只能使用多值绑定来实现,注意绑定的时候值的顺序。
1 | <Grid> |
转换器
1 | namespace Z.Converters |
引用
1 | <zcv:PercentageConverter x:Key="PercentageConverter" /> |