隐藏页面特效

WPF学习整理总结 --转换器

作用

1.可以将源数据和目标数据之间进行特定的转化

2.定义转换器,需要继承接口IValueConverter

class ForeColorConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) throw new ArgumentNullException("value can not be null"); int index = System.Convert.ToInt32(value); if (index == 0) return "Blue"; else if (index == 1) return "Red"; else return "Green"; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return null; } }

Convert:会进行源属性传给目标属性的特定转化

ConvertBack:会进行目标属性传给源属性的特定转化

参数parameter:对应Binding的ConverterParameter属性

3.使用转换器

(1)引用转换器所在的命名空间

xmlns:local="clr-namespace:Converter"

(2)定义资源

<UserControl.Resources> <local:ForeColorConverter x:Key="forColorConverter"/> </UserControl.Resources>

(3)定义属性

public UserControl1() { InitializeComponent(); this.DataContext = new ViewModel(); } public class ViewModel : ViewModelBase { private int status = 0; public int Status { get => status; set { status = value; RaisePropertyChanged(" Status"); } } }

(4)绑定属性,添加转换器

<Grid> <Label HorizontalAlignment="Left" Height="23" Margin="243,208,0,0" Content="这里哦" Foreground="{Binding Status,Converter={StaticResource forColorConverter},Mode=OneWay}" VerticalAlignment="Top" Width="120"/> <TextBox x:Name="tbName" HorizontalAlignment="Left" Height="23" Margin="243,160,0,0" TextWrapping="Wrap" Text="{Binding Status,UpdateSourceTrigger=LostFocus,Mode=OneWayToSource}" VerticalAlignment="Top" Width="120"/> <Button Content="Button" HorizontalAlignment="Left" Margin="389,160,0,0" VerticalAlignment="Top" Width="75"/> </Grid>

 

 

__EOF__

本文作者Moon
本文链接https://www.cnblogs.com/jiangxiaoming/p/14236428.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   江小明Moon  阅读(128)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示