WPF多值绑定及多值转换(MultiBinding和IMultiValueConverter)
WPF可以使用MultiBinding进行多值绑定,使用IMultiValueConverter进行多值转换
例:
(1)转换器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class ContentConverter : IMultiValueConverter { //源属性传给目标属性时,调用此方法ConvertBack public object Convert( object [] values, Type targetType, object parameter, CultureInfo culture) { if (values == null || values.Length == 0) throw new ArgumentNullException( "values can not be null" ); string s = "" ; foreach ( var item in values) { s += System.Convert.ToString(item); } return s; } //目标属性传给源属性时,调用此方法ConvertBack public object [] ConvertBack( object value, Type[] targetTypes, object parameter, CultureInfo culture) { return null ; } } |
(2)绑定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <Window.Resources> <local:ContentConverter x:Key= "content" ></local:ContentConverter> </Window.Resources> <Grid> <Label HorizontalAlignment= "Left" Height= "23" Margin= "243,208,0,0" Foreground= "{Binding Status,Converter={StaticResource foreColor},Mode=OneWay}" VerticalAlignment= "Top" Width= "120" > <Label.Content> <MultiBinding Converter= "{StaticResource content}" > <Binding Path= "Str1" /> <Binding Path= "Str2" /> <Binding Path= "Str3" /> </MultiBinding> </Label.Content> </Label> <Button Content= "Button" HorizontalAlignment= "Left" Margin= "35,44,0,0" VerticalAlignment= "Top" Width= "75" Click= "Button_Click" /> </Grid> |
(3)button click事件
1 2 3 4 5 6 | private void Button_Click( object sender, RoutedEventArgs e) { window2ViewModel.Str1 = "1" ; window2ViewModel.Str2 = "2" ; window2ViewModel.Str3 = "3" ; } |
(4)效果 lable显示 str1,str2和str3相加后的字符串
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)