格式化列表中的值

布莱安

我有一个像这样的模型:

   public class MyViewModel
    {
        public TimeSpan AverageLogOn { get; set; }
        public TimeSpan AverageLogOff { get; set; }
        public TimeSpan AverageTotalHours { get; set; }
        
    }

我使用此模型作为列表,如:

  public IList<MyViewModel> MyViewModelList { get; set; } = new List<MyViewModel>();

我想做的是将其格式化AverageLogOn为“ hh:mm:ss”,我该如何使用LINQ,我认为是这样的:

 MyViewModel.Select(x => new MyViewModel { AverageLogOn = x.AverageLogOn.ToString("hh:mm:ss"), AverageLogOff = x.AverageLogOff, AverageTotalHours = x.AverageTotalHours });

但是当我尝试x.AverageLogOn.ToString("hh:mm:ss")它抛出一个错误

无法将类型'string'隐式转换为'System.TimeSpan'

我究竟做错了什么?问候

彼得·杜尼奥(Peter Duniho)

我究竟做错了什么?

您正在尝试将a分配给string需要TimeSpan的属性就像错误消息说的那样。基本上,与此问题相同:如何将时间从DateTime.Now转换为24Hr格式

您没有提供太多上下文,因此不清楚如何使用Select()通话结果这是可能的,它是在一个上下文string值实际上是有道理的,这些属性。如果是这样,那么您可以MyViewModel从代码中删除并创建一个匿名类型:

MyViewModelList.Select(x => new { AverageLogOn = x.AverageLogOn.ToString("hh:mm:ss"), AverageLogOff = x.AverageLogOff, AverageTotalHours = x.AverageTotalHours });

您将获得对象的枚举,其类型是未命名的(即“匿名”),并且原始MyViewModel对象类型不同,该对象AverageLogOn现在属性为typestring而不是TimeSpan但是请注意,匿名类型的使用方式受到限制。但是,由于WPF在XAML中执行所有操作时都没有太多的类型安全性,因此完全有可能完全满足您的要求。

注意:您不会在帖子中显示如何实际使用对的调用结果Select()但我想确保您了解这Select()对原始集合没有任何作用。它不会修改MyViewModelListSelect()方法返回IEnumerable<MyViewModel>here的一个实例,并且您必须以某种方式使用该引用来实际查看所做的工作Select()(实际上,除非您实际上“实现”了该枚举,即以某种方式枚举值的序列,否则实际上什么都不会发生,甚至没有匿名类型对象的实例化。)

另一方面,也许您真正需要的只是调整XAML以按TimeSpan所需方式格式化值。在这种情况下,您根本不需要该Select()方法。相反,您需要StringFormat在绑定标记中包含说明符,如下所示:

<TextBox Text="{Binding AverageLogOn, StringFormat={}{0:hh}:{0:mm}}" />

有关更多信息,请参阅此问题:如何在wpf中格式化转换器参数

错误本身的原因很明显,并且错误消息似乎足够清楚。首先,您缺乏有关为何会陷入困境的更多细节,因此很难确定要真正回答问题的方式。我认为以上内容应能充分解决您的问题,但是如果这些建议不能解决您的问题,请编辑您的问题以进行改进,以便清楚地知道您要做什么。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为用户的每个新值将列表项格式化到表的不同行中

来自分类Dev

格式化数组值

来自分类Dev

从MySQL输出值到预格式化的表中

来自分类Dev

如何格式化索赔中的表格值?

来自分类Dev

格式化javascript / jquery中的值

来自分类Dev

在NetLogo中合并和格式化列表

来自分类Dev

在Excel中获取单元格的格式化值

来自分类Dev

如何格式化MPAndroidChart中的值?

来自分类Dev

如何格式化列表框中的对齐方式

来自分类Dev

在Excel中以3值货币格式化数字

来自分类Dev

公式中的EPPlus格式化值

来自分类Dev

PHP中的键和值重新格式化

来自分类Dev

重新格式化列表中的Python列表

来自分类Dev

如何串联SAS中的格式化值

来自分类Dev

加入后格式化列表中的字符串

来自分类Dev

R-如何格式化列表中的文本输出

来自分类Dev

格式化PromQL值

来自分类Dev

如何格式化Ansible值中的变量

来自分类Dev

格式化数组值

来自分类Dev

格式化javascript / jquery中的值

来自分类Dev

在字典python中创建格式化的值

来自分类Dev

使用javascript更改预格式化文本中的值

来自分类Dev

在Excel中以3值货币格式化数字

来自分类Dev

重新格式化表格中的值

来自分类Dev

格式化表格单元格中的值

来自分类Dev

Python格式化列表列表中的所有值

来自分类Dev

如何检索实体中查找的格式化值?

来自分类Dev

根据列中的多个值格式化行

来自分类Dev

根据php中的值格式化单元格