请选择 进入手机版 | 继续访问电脑版

UWP开发中Binding配合Converter的使用

[复制链接]
科达工艺 发表于 2021-1-2 19:46:12 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
UWP开发中Binding共同Converter的使用

MVVM模式的使用,简化了UWP应用的开发,使条理更加分明。在写xaml的时候,有些小技能照旧很实用的;比如Converter,字面上明确是转换器,那它到底是转换什么的?打仗过的大概知道它起的是范例转换的作用,当你绑定的数据是一堆字母,显示时却想将它酿成汉字,一种做法可以在数据绑定前将这些数据转换成需要的文字,另一种做法就是使用Converter。
它有两个长处:
1,保持原始数据的完整性,不粉碎原有数据布局。
2,可以复用,别的地方需要直接将这个Converter拿已往就行。
  先展示xaml代码,简朴的一个例子,数据源给的是uint范例的数字,页面展示将它凌驾10000用字母w表现,并保存2位小数显示。Converter是一个.CS文件,在页面的资源中声明后才可以使用,可以在page标签下声明。也可以在需要绑定命据的上一级父级声明,下面我就是直接再上级Grid中声明的。
  1. ...xmlns:converter="using:TikTokBillboard.Model"...                                                                                                      
复制代码
先引用CS文件,xmlns:converter="using:TikTokBillboard.Model",然后声明UnitConverter(这个是我的Converter文件的名称),x:key的值的可以随便写,只要和下面使用时相同即可。
DiggNum是目的源,我们就是要把DiggNum的值转化成简写w表现。

View Code
    Converter的实现需要继承IValueConverter接口,这个接口是系统的,我们要实现的是两个方法Convert和ConvertBack。Convert方法是将数据源绑定的值传给该方法举行转换处理处罚,ConvertBack则是将页面展示的值传给数据源时举行的转换处理处罚,一般情况只使用Convert方法。这两个方法有相同的四个参数,value是数据源绑定传过来的值,targetType不消管它,parameter是转换参数用于根据一个值不能举行明确转换使用的,language就是语言,根据语言差别转换成差别形态可以使用。
  1. namespace TikTokBillboard.Model{    ///     /// 单元转换    ///     ///     ///     public class UnitConverter : IValueConverter    {        public object Convert(object value, Type targetType, object parameter, string language)        {            //默认为0            string size = "0";            //非0判断            if (uint.Parse(value.ToString()) != 0 && uint.Parse(value.ToString()) >= 10000)            {                size = String.Format("{0:F2} {1}", Math.Round((1.00 * uint.Parse(value.ToString()) / 10000), 2), "w");            }            else            {                size = value.ToString();            }            return size;        }        public object ConvertBack(object value, Type targetType, object parameter, string language)        {            throw new NotImplementedException();        }    }}
复制代码

View Code
    剩余的代码部门就是根据MVVM随便写一下,添加个Model和ViewModel。
最后看一下实现效果:

文章参考 https://blog.csdn.net/weixin_30585437/article/details/98146909

来源:https://blog.csdn.net/DoonZhang/article/details/112053844
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )