我正在尝试修改使用ObservableCollection生成的内容到使用XMLDataprovider生成的集合的代码。我能够成功地使用XMLDataProvider生成内容。我现在要解决的问题是修改从ObservableCollection生成的内容引用它的代码。每当我运行下面的方法时,我的应用程序就会被冻结。看起来IList不适合引用XML集合。应该用什么呢?提前谢谢。
public static void InsertItemInItemsControl(ItemsControl itemsControl, object itemToInsert, int insertionIndex)
{
if (itemToInsert != null)
{
IEnumerable itemsSource = itemsControl.ItemsSource;
if (itemsSource == null)
{
itemsControl.Items.Insert(insertionIndex, itemToInsert);
}
// It looks like IList is not appropriate reference to XML collection else if (itemsSource is IList)
{
((IList)itemsSource).Insert(insertionIndex, itemToInsert);
}
else
{
Type type = itemsSource.GetType();
Type genericIListType = type.GetInterface("IList`1");
if (genericIListType != null)
{
type.GetMethod("Insert").Invoke(itemsSource, new object[] { insertionIndex, itemToInsert });
}
}
}
}
答案 0 :(得分:0)
你为什么要这样做?:
// it looks like IList is not appropriate reference to XML collection
else if (itemsSource is IList)
{
((IList)itemsSource).Insert(insertionIndex, itemToInsert);
}