我有一个telerik RadGridView控件,我希望能够从列表(记事本等)粘贴到网格中。
这里的问题是通过ItemsSource添加到网格的项目没有无参数构造函数。
对于标准的行插入,这不是问题,因为AddingNewDataItem
事件就像工厂一样运行。
粘贴似乎不是通过此机制进行的,也不提供手动创建粘贴项目的方法。
PastingCellClipboardContent
事件不允许设置Item
参数的GridViewCellClipboardEventArgs
属性。
从检查telerik论坛收集到的内容(参见:http://www.telerik.com/forums/insert-new-rows-into-radgridview-by-copy-paste-from-excel),无法提供工厂,因为网格视图只想创建一个新实例,然后使用绑定属性来推送数据。
我是昏暗的,不知道什么?
这对我来说似乎是一种荒谬不一致的设计。
注意:使用无参数的ctor对我来说真的不可能。
答案 0 :(得分:1)
我无法使用Telerik控件解决此问题
相反,我之前在RadGridView
上禁用了粘贴支持,而是在我的用户控件上添加了PreviewKeyDown
事件。
从那里我只听了通常的粘贴快捷方式,并决定手动拦截,处理和插入数据。
这意味着我丢失了内置的提取代码,并且必须直接处理来自剪贴板的字符串数据。鉴于我的用例主要用于导入字符串列表,我只是将剪贴板字符串分割为Environment.NewLine
,然后将每个字符串拆分为,
以确保我最终获得了最大数量的敏感元素
虽然不是Telerik问题的解决方案(我越来越不喜欢这些控件),但希望它为遇到同样问题的人提供某种潜在的解决方案。