WPF 数据网格:通过已使用 ValueConverter 转换的 UI 编辑值



>我有一个带有"总金额"列的数据网格。这是一个双精度类型,由 IValueConverter 转换为带有"$"符号和逗号的货币类型。

(1(但是单元格需要可编辑,以便用户可以对行进行更改,包括金额。我该怎么做?现在,编辑会冻结应用程序(并不感到惊讶(,因为我不知道如何处理这个问题。

(2(如果用户添加新行并向其添加新项目。如何在值前面加上 $ 符号,并在用户键入时在相关位置添加逗号?

注意:一种解决方法是我想将TotalAmount属性本身作为字符串,并在需要执行任何操作时转换为双精度。还要添加验证以确保用户输入为双精度类型。但我仍然不知道如何实现第 #2 点。

这里的关键是使用CellTemplateCellEditingTemplate

感谢 - Link1 & Link2

我的解决方案是上述两者的结合,即 -

<DataGridTemplateColumn Header="Total Amount">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=TotalAmount, Converter={StaticResource CurrencyConverter}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=TotalAmount, StringFormat={0:N2},UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

最新更新