Windows phone 8 System.NotSupportedException';尝试在WP8中移动ObservableCollection项时
我在尝试交换/移动ObservableCollection中的项目时遇到问题。我在列表框中有一个项目列表,当您滑动一个项目时,它将成为一个已完成的项目,并因此移动到列表的末尾。。接下来的时间,会向上移动。。如果有三个项目。当我们在第一项上滑动时,第一项移动到列表的底部,使其成为第三项,第二项向上移动成为第一项,第三项向上移动成为第二项 我就是这样声明这个实例的Windows phone 8 System.NotSupportedException';尝试在WP8中移动ObservableCollection项时,windows-phone-8,observablecollection,notsupportedexception,Windows Phone 8,Observablecollection,Notsupportedexception,我在尝试交换/移动ObservableCollection中的项目时遇到问题。我在列表框中有一个项目列表,当您滑动一个项目时,它将成为一个已完成的项目,并因此移动到列表的末尾。。接下来的时间,会向上移动。。如果有三个项目。当我们在第一项上滑动时,第一项移动到列表的底部,使其成为第三项,第二项向上移动成为第一项,第三项向上移动成为第二项 我就是这样声明这个实例的 private ObservableCollection<PageCollection> PageCollectionObs
private ObservableCollection<PageCollection> PageCollectionObservableCollection { get; set; }
当执行到达PageCollectionObservableCollection.Move时,将抛出以下错误
中发生“System.NotSupportedException”类型的异常
System.Windows.ni.dll,但未在用户代码中处理
上面的代码在Windows8中非常有用,但是现在它在WP8中抛出了一个异常。有什么想法吗?该控件绑定到一个列表框。我找到了一份工作。我不确定这是不是正确的方法。我创建了一个临时OC,执行了移动功能,然后将其重新分配回旧OC。然后更新了列表框
PageCollection completedItem = fe.DataContext as PageCollection;
int fileNoCompleted = completedItem.FileNo;
if (completedItem.CompletionStatus == false)
{
int position = 0;
for (int i = PageCollectionObservableCollection.Count - 1; i > -1; i--)
{
if (PageCollectionObservableCollection.ElementAt(i).CompletionStatus == false)
{
position = i;
break;
}
}
completedItem.CompletionStatus = true;
completedItem.Color = Colors.Green;
completionStatusArray[fileNoCompleted] = true;
//编辑
List<PageCollection> l = PageCollectionObservableCollection.ToList<PageCollection>();
ObservableCollection<PageCollection> tempPageCol = new ObservableCollection<PageCollection>(l);
tempPageCol.Move(fileNoCompleted, position);
PageCollectionObservableCollection = tempPageCol;
CategoryLB.ItemsSource = PageCollectionObservableCollection;
CategoryLB.UpdateLayout();
}
List l=PageCollectionObservableCollection.ToList();
ObservableCollection tempPageCol=新的ObservableCollection(l);
tempPageCol.Move(文件未完成,位置);
PageCollectionObservableCollection=tempPageCol;
CategoryLB.ItemsSource=PageCollectionObservableCollection;
CategoryLB.UpdateLayout();
}
PageCollection completedItem = fe.DataContext as PageCollection;
int fileNoCompleted = completedItem.FileNo;
if (completedItem.CompletionStatus == false)
{
int position = 0;
for (int i = PageCollectionObservableCollection.Count - 1; i > -1; i--)
{
if (PageCollectionObservableCollection.ElementAt(i).CompletionStatus == false)
{
position = i;
break;
}
}
completedItem.CompletionStatus = true;
completedItem.Color = Colors.Green;
completionStatusArray[fileNoCompleted] = true;
List<PageCollection> l = PageCollectionObservableCollection.ToList<PageCollection>();
ObservableCollection<PageCollection> tempPageCol = new ObservableCollection<PageCollection>(l);
tempPageCol.Move(fileNoCompleted, position);
PageCollectionObservableCollection = tempPageCol;
CategoryLB.ItemsSource = PageCollectionObservableCollection;
CategoryLB.UpdateLayout();
}