wpf 如何在不知道行绑定到哪个集合的情况下向DataGrid添加行

wribegjk  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(158)

我正在创建一个控件(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:'索引在数组边界之外。'
你知道我哪里做错了吗

bd1hkmkf

bd1hkmkf1#

我在过去的24小时里一直在思考这个问题,并得出结论,这是不可能的。唯一可行的方法是,如果集合中已经有数据,但如果有人将数据粘贴到DataGrid中,而集合是空的,那么就不可能获得集合所基于的对象。

相关问题