我正在创建一个控件(CustomGrid)继承自WPF DataGrid。每当使用CustomGrid时,它都会将ItemsSource设置为Observable Collection。我正在添加的功能之一是能够从剪贴板粘贴数据,但是如果当前集合中没有足够的行,然后我想添加额外的行。这是我卡住的地方。CustomGrid将用于不同的集合,因此我无法引用集合所基于的类。使用ItemsSource,如何添加额外行。
这就是我迄今为止所尝试的...
private void AddNewRow()
{
IList itemsSource = this.ItemsSource as IList;
Type itemType = itemsSource.GetType().GenericTypeArguments[0];
object newRecord = Activator.CreateInstance(itemType);
itemsSource.Add(newRecord);
}
错误:System.IndexOutOfRangeException:'索引在数组边界之外。'
你知道我哪里做错了吗
1条答案
按热度按时间bd1hkmkf1#
我在过去的24小时里一直在思考这个问题,并得出结论,这是不可能的。唯一可行的方法是,如果集合中已经有数据,但如果有人将数据粘贴到DataGrid中,而集合是空的,那么就不可能获得集合所基于的对象。