【发布时间】:2014-05-27 23:38:58
【问题描述】:
我的应用程序使用DataGrid 的Copy() 方法检索所有数据以导出为CSV 和其他格式。我所做的只是
- 清除剪贴板
- 致电
myGrid.Copy()
现在这通常可以正常工作 - 除了我的
即使在这些特定系统上,它也只是偶尔发生,即第一次复制有效,但随后尝试失败(即,相同、有效的表内容复制3 次中有 1 次有效!)带有 CLIPBRD_E_CANT_OPEN 错误和堆栈跟踪,如
at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
at System.Windows.Clipboard.Flush()
at System.Windows.Controls.DataGrid.OnExecutedCopy(ExecutedRoutedEventArgs args)
.net 版本通常是 4.0.30319.x(但据我所知,问题似乎与特定框架版本无关)。
由于导出是应用程序的一个关键功能,这个问题会产生相当大的影响..
任何如何解决此问题的想法将不胜感激!
【问题讨论】:
-
只是为了消除明显的;你处理过空字段吗? IE。应该保存数据的
null字段? -
是的 - 在一个特定示例中,表中具有相同数据的 1 次是 3 次。所以它一定是我们应用程序之外的东西 - 我想..
标签: c# wpf datagrid wpf-controls clipboard