关于产生错误

“The as operator must be used with a reference type or nullable type ('System.DateTime' is a non-nullable value type) ”

今天写数据转换器,需要将按照时间值显示不同的时间格式字符串。

结果在Convert里发现这么写报错。

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            DateTime time = value as DateTime;
        }

该问题是因为DateTime 为值类型,不能用引用类型或空类型。我们可以按如下方法写这段代码。

//DateTime time = value as DateTime;  这种写法就不对 因为DateTime为值类型

//DateTime time = value as DateTime? ?? _NullTime; 这种写法虽然不报错用起来也没问题,不过也不合适

DateTime time = (DateTime)value;  //这种是正确写法 多谢阿干童鞋指正

贴一下这个数据转换器

需求:

绑定时间为当日的 只显示“时:分”

绑定时间为当年且当日前的 显示 “月-日 时:分”

绑定时间为往年的 显示 “年份 月-日 时:分”

数据转换器:

  public class TimeFormatConverter:IValueConverter{private static DateTime _Now = DateTime.Now;private static DateTime _UndefineTime = new DateTime(0);public object Convert(object value, Type targetType, object parameter, CultureInfo culture){//DateTime time = value as DateTime;//DateTime time = value as DateTime? ?? _NullTime;DateTime time = (DateTime)value;if (time == _UndefineTime)return "绑定时间有误";int offYear = _Now.Year - time.Year;int offDay = _Now.Date.Subtract(time.Date).Days;if (offYear >= 1){return string.Format("{0:yyyy-MM-dd HH:mm}", time);}else if (offDay >= 1){return string.Format("{0:MM-dd HH:mm}", time);}else{return string.Format("{0:HH:mm}", time);}}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){throw new NotImplementedException();}}

xaml中声明集合

xmlns:Conv="clr-namespace:MyPageTabDemo.Utils.Converter"

使用

<TextBlock Text="{Binding Timestamp, Converter={StaticResource TimeFmtConverter}}" .../>

转载于:https://www.cnblogs.com/longlww/archive/2011/08/30/2159294.html

Windows Phone 7 开发积累_04相关推荐

  1. matlab开发环境,Windows 下开源开发环境的搭建

    因项目需要在 Windows 下测试开发的程序, 所以研究了一下如何在 Windows 下搭建基于 gcc 的开源开发环境. MSYS2 是 Windows 下的一款开源软件构建和发布平台, 网址为  ...

  2. Windows phone 应用开发[1]-Text To Speech

    最近几个月一直在专注Windows phone产品设计和项目开发.在其中团队磨合和产品定位上也出现不少问题.一直难以抽出成块的时间来思考梳理.至此博客更新也从此中断.这两天因病在家休息.上周在微博[F ...

  3. 刚开始Windows Mobile的开发,请大家多多关照

    刚开始学习Windows Mobile的开发,现在正在学习WML和WAP的网站制作,请大家多多关照. 转载于:https://www.cnblogs.com/czha2002/archive/2005 ...

  4. windows下pomelo开发环境搭建及JS乱码问题

    from: http://blog.csdn.net/wangqiuyun/article/details/9243263 最近一直在研究node.js这一块,为的就是使用网易的pomelo框架,学习 ...

  5. Windows phone 应用开发[12]-Pex 构建自动化白盒测试[下]

    本篇承接于上篇Windows phone 应用开发[11]-Pex 构建自动化白盒测试[上] .大概了解Pex作为自动化白盒测试工具工作方式.以及提出参数化单元测试的概念.为开发人员减少手动编写大量独 ...

  6. Windows上python开发--2安装django框架

    Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...

  7. Windows 8 应用开发 - 本地数据存储

    原文:Windows 8 应用开发 - 本地数据存储 在应用中通常会遇到用户主动或被动存储信息的情况,当应用关闭后这些数据仍然会存储在本地设备上,用户下次重新激活应用时会自动加载这些数据.下面将通过一 ...

  8. 张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器

    张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器 原文:张高兴的 Windows 10 IoT 开发笔记:BH1750FVI 光照度传感器 BH1750FVI 是一款 ...

  9. 普元EOS开发积累第一篇(常见错误解决方法) 持续更新

    普元EOS开发积累第一篇(常见错误解决方法) 持续更新 参考文章: (1)普元EOS开发积累第一篇(常见错误解决方法) 持续更新 (2)https://www.cnblogs.com/tangjing ...

最新文章

  1. 10-TypeScript中的接口
  2. 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用
  3. jsp文件通常用common_JSP使用commons-fileupload实现文件上传实例
  4. 阿里云(一)云存储OSS的命令行osscmd的安装和使用
  5. 弱电工程室内外光纤敷设有哪些技术要求
  6. c语言各类随机函数,怎样让c语言中的随机函数真正随机?
  7. linux创建a1的硬链接a2,Linux命令-重定向和软硬链接
  8. Window下更新python pip源
  9. 平凡的世界电子书pdf下载_零基础彩铅画入门教程步骤图及全套PDF电子书教程下载!...
  10. 疫情期间不忽略障碍群体刚需、仍坚持做无障碍的倡议书
  11. react redux 简化_Redux 源码解析
  12. 潜在语义索引(Latent Semantic Indexing, LSI)——快速教程
  13. Codeforces 837D 动态规划
  14. java 数组优化_Java数组的jit优化问题?
  15. CAM350 简单使用
  16. hdu1197(十进制十六进制十二进制位数和)
  17. DDD聚合设计的几个原则的简单讨论
  18. Redis - 听说 Dragonfly 宣称比我快 25 倍
  19. 接口测试主要做以下3个方面:
  20. Softing过程自动化解决方案——助力数字化工业

热门文章

  1. [react] react是什么?它的主要特点是什么?
  2. [react] 怎么在JSX里使用自定义属性?
  3. 前端学习(3084):vue+element今日头条管理-表单数据绑定2
  4. [html] 制作一个不规则形状有哪些方法可以实现?
  5. [html] 你有使用过summary标签吗?说说它的用途
  6. [css] 怎么使用css选择空链接?
  7. [vue] 怎么解决vue动态设置img的src不生效的问题
  8. 前端学习(2192):Promise的all的使用
  9. 前端学习(2177):vue-router得参数传递
  10. 前端学习(1081):构造函数和原型概述