我有一个数据表格,其中有一列 "总金额",这是一个双类型,通过IValueConverter转换为带有"$"符号和逗号的货币类型。这是一个双类型,并通过IValueConverter转换为带有"$"符号和逗号的货币类型。
(1)但是单元格需要是可编辑的,这样用户就可以对该行进行修改,包括金额。如何做到这一点?现在,编辑会冻结应用程序(并不奇怪),因为我不知道如何处理这个问题。
(2)如果用户添加了新的行,并在其中添加了一个新的项目。我如何在值前加上$符号,并在用户输入时在相关位置加上逗号?
注意。 一个变通的办法是,我想把TotalAmount属性本身作为一个字符串,当我需要执行任何操作时,就转换为双倍。同时增加一个验证,确保用户输入的是双数类型。但我仍然不知道如何实现第2点。
这里的关键是使用 CellTemplate
& CellEditingTemplate
我的解决方案是将以上两个组合为------。
<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>