【问题标题】:How to format data for display using an ItemsSource?如何使用 ItemsSource 格式化数据以进行显示?
【发布时间】:2013-04-26 18:29:34
【问题描述】:

我对 WPF 很陌生,所以请原谅我的无知。我目前有一个对象列表,我将其用作ItemsSourceDataGrid。对象的字段之一是浮点数据类型,当用作ItemsSource 时,当然会在DataGrid 上显示小数位。

如果可能的话,我想在不更改基础数据的情况下删除这些小数位。换句话说,我想在DataGrid 上将它们显示为整数,但在List 中将它们作为浮点数。

如果使用 C# 可以做到这一点,那就太棒了。 XAML 让我想吐 :)

【问题讨论】:

  • XAML makes me want to vomit - 然后回到 winforms。 WPF 不适合新手 =)
  • 所以你更喜欢用大长字符串(标签)编码而不是漂亮的干净的对象表示法?我想每个人都有自己的:)
  • XAML 没有编码。 XAML 是定义 UI。当然,我更喜欢 XAML,而不是你需要在其他技术中做任何事情的多种可怕的 hack(P/Invoke?Owner Draw?WTF 是吗??)
  • 语义不会让你摆脱标签丑陋的事实!
  • 同意。如果 XAML 是某种形式的 JSON,那就太棒了,它仍然比现有的任何其他东西好 12390812038347297 倍。

标签: c# wpf datagrid formatting itemssource


【解决方案1】:

如果您只是为了显示目的而尝试格式化值,您可以像这样使用BindingStringFormat 属性:

<DataGridTextColumn Header="My Number" Binding="{Binding MyNumber, StringFormat=N}"/>

这可以避免在非常简单的情况下使用Converter。如果您需要更多功能/灵活性,那么Converter 绝对是您的最佳选择。

【讨论】:

  • +1。再说一次,我懒得自己回答这个问题。我更喜欢在 cmets 中咆哮。
  • 我听到了。毕竟是星期五。
  • 有没有办法从 C# 端做到这一点?我目前没有使用绑定字符串,而是分配了 'MyDataGrid.ItemsSource = List'
猜你喜欢
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 2019-10-25
  • 2013-06-23
  • 2017-08-29
  • 2014-05-17
  • 1970-01-01
  • 2018-12-30
相关资源
最近更新 更多