我真正想做的是为 DataGridTextColumn
上的特定绑定(bind)更改 StringFormat
,但由于这是由绑定(bind)定义的,我想我需要以某种方式改变整个绑定(bind)。
我想避免使用 DataGridTemplateColumn
的原因是因为 DataGridTextColumn 似乎有一些内置的基本功能,我会失去这些功能并且必须编写代码来手动处理更多,例如:
- 能够开始在非编辑模式单元格中键入内容,这会自动将单元格置于编辑模式
- 复制和粘贴数据(从 DataGrid 和 Excel)
当前绑定(bind)(期望的显示/读取模式绑定(bind))
Binding="{Binding ADecimalNumber StringFormat={StaticResource ReadDecimalFormat}}"
所需的编辑模式绑定(bind)
Binding="{Binding ADecimalNumber StringFormat={StaticResource WriteDecimalFormat}}"
仅供引用,ReadDecimalFormat
用于显示 2 位精度的小数值,WriteDecimalFormat
用于显示输入的原始小数值(所有-精度位数,大多数情况下这是 4 位数)
最佳答案
我想我已经试探性地让它工作了,目前正在测试它。
<DataGridTextColumn Header="Value" ClipboardContentBinding="{Binding ADecimalNumber}">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="{Binding ADecimalNumber, StringFormat={StaticResource ReadDecimalFormat}}"/>
</Style>
</DataGridTextColumn.ElementStyle>
<DataGridTextColumn.EditingElementStyle>
<Style TargetType="TextBox">
<Setter Property="Text" Value="{Binding ADecimalNumber, StringFormat={StaticResource WriteDecimalFormat}}"/>
</Style>
</DataGridTextColumn.EditingElementStyle>
</DataGridTextColumn>
关于wpf - 当该列进入编辑模式时,有没有办法更改 DataGridTextColumn 的绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12500835/