【问题标题】:DataGrid decimal format converterDataGrid十进制格式转换器
【发布时间】:2012-06-05 21:01:34
【问题描述】:

我以前从未使用过 wpf 数据网格,我正在尝试格式化一些十进制列以使用基于行的其他列值的格式的特定值。

过去使用 Infragistics XamDataGrid,我能够为 XamCurrencyEditor 设置样式,设置“格式”和“掩码”的值,并使用我编写的多值转换器,传递 DataItem。

网格列是以编程方式创建的。所以,我创建了一个这样的字段:

var field = new DataGridTextColumn { Header = item.Name, Binding = new Binding("[" + item.Name + "].Value") { Mode = BindingMode.TwoWay } };

此字段将包含十进制值(即使该列只是一个文本列)。

如何在此列中添加一些格式以考虑数据对象中的一些其他值?我不确定如何引用实际绑定的数据行本身以将该数据与单元格值一起传递给转换器。

【问题讨论】:

  • 投反对票有什么具体原因,下次我可以避免吗?

标签: wpf wpfdatagrid


【解决方案1】:

如果小数确实是字符串,不确定它将如何工作,但这是小数属性的 XAML 语法

绑定 StringFormat=DecValue: {0:N2}}

【讨论】:

  • 谢谢布拉姆。如果我需要根据行的另一列计算格式(小数位数),你知道它会如何工作吗?
  • 您需要一个多值转换器。 msdn.microsoft.com/en-us/library/…
  • 嘿,布拉姆。我了解多值转换器。问题是我不知道实际绑定到什么,即。如何访问数据网格中绑定的数据行。
  • 为什么不能直接绑定属性?
  • 我可以,但我需要访问当前行数据上下文的对象,不是吗?那是我不知道怎么去的。因此,如果我为列定义了一个多值转换器,并且我希望其中一个参数成为该行的数据上下文,我该怎么做?
猜你喜欢
  • 1970-01-01
  • 2014-02-06
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
相关资源
最近更新 更多