Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ObservableCollection.Next()和ObservableCollection.previous()函数_C#_Silverlight_Windows Phone 7_Observablecollection - Fatal编程技术网

C# ObservableCollection.Next()和ObservableCollection.previous()函数

C# ObservableCollection.Next()和ObservableCollection.previous()函数,c#,silverlight,windows-phone-7,observablecollection,C#,Silverlight,Windows Phone 7,Observablecollection,我有一个包含20个项目(图像)和按钮(“下一步”)的observablecollection。如何获得observablecollection.Next()和observablecollection.previous()等函数?一个observablecollection没有“当前”甚至“选定”项目的概念。他们都是平等的 您可以保留一个简单的int索引,并递增/递减它 或者使用绑定列表框的SelectedItem属性或类似属性 最简单的解决方法是使用迭代器-简单整数跟踪当前项 int coute

我有一个包含20个项目(图像)和按钮(“下一步”)的observablecollection。如何获得observablecollection.Next()和observablecollection.previous()等函数?

一个observablecollection没有“当前”甚至“选定”项目的概念。他们都是平等的

您可以保留一个简单的
int
索引,并递增/递减它


或者使用绑定列表框的SelectedItem属性或类似属性

最简单的解决方法是使用迭代器-简单整数跟踪当前项

int couter = 0;
按下“下一步”按钮时,如果计数器不大于列表中的元素数,则检查计数器,并增加计数器:

if(counter < myObservableColection.Count)
    ++counter;
if(计数器
您以前的函数需要检查计数器是否不是负数,并减小计数器


您可以使用

尝试更整洁的模式,只需按下一个按钮,就可以调用ObservableCollection。这将为您提供一个IEnumerator,您可以在其上调用Current和MoveNext

如果您需要实现一个前一个,那么您将使用一个更像lukas'的带有索引的解决方案