WPF数据网格复制和粘贴所见即所得

7
我正在使用WPF中的数据网格,并且默认情况下它具有复制和粘贴功能。我有一个日期时间列,我使用绑定和字符串格式来显示我想要的日期时间格式。但是,当我复制和粘贴时,粘贴的文本变成了未经格式化的日期时间。是否有一种方法可以做到所见即所得的复制和粘贴?谢谢,Kev。编辑:我尝试使用ClipboardContentBinding,将与绑定相同的内容放在其中,但没有起作用。

1
你要粘贴到哪里?Excel吗? - Dean Kuga
2
假设您正确使用了ClipboardContentBinding,则剪贴板数据必须以其正确的形式存在。如果您正在将其粘贴到Excel中,Excel本身将重新格式化传入的字符串,如果它在任何情况下类似于有效的日期时间格式...因此,您在剪贴板中拥有的字符串可能是您所期望的格式,但Excel仍会根据默认粘贴格式设置更改它来适应日期...您可以通过将剪贴板数据粘贴到记事本中并验证日期格式来检查此内容...它应该符合您的预期格式...请确认。 - WPF-it
1个回答

2

DataGrid有多个剪贴板扩展点,您可以挂钩并查看发生了什么。网格本身具有CopyingRowClipboardContent事件,除了在事件参数中具有所有所需信息外,还具有一个很好的辅助方法FormatClipboardCellValues(string format)。此外,每个列都有一个CopyingCellClipboardContent,可用于特定数据时间列的需求。

注意:默认情况下,DataGrid绑定的列(那些派生自DataGridBoundColumn的列)将其ClipboardContentBinding指向绑定属性(如果未明确指定)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接