ObservableCollection.Next() 和 observablecollection.previous() 函数

发布于 2024-11-28 07:32:46 字数 132 浏览 1 评论 0原文

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

I have a observablecollection with 20 items(images) and button("Next").How I can get functions like observablecollection.next() and observablecollection.previous() ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

叫嚣ゝ 2024-12-05 07:32:46

可观察的集合没有“当前”甚至“选定”项目的概念。他们都是平等的。

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

或者使用绑定 ListBox 或类似属性的 SelectedItem 属性。

An observable collection has no concept of 'Current' or even of 'Selected' item. They are all equal.

You could keep a simple int index and Increment/Decrement it.

Or use the SelectedItem property of a bound ListBox or similar.

无法回应 2024-12-05 07:32:46

最简单的灵魂是使用迭代器 - 简单整数来跟踪当前项目。

int couter = 0;

当您按下下一个按钮时,检查计数器是否不大于列表中的元素数量并递增计数器:

if(counter < myObservableColection.Count)
    ++counter;

您之前的函数需要检查计数器是否不为负数并递减计数器。

您可以使用 Enumerator 尝试更简洁的模式

The simplest soultion would be to keep track of your current item using iterator - simple integer.

int couter = 0;

When you press the next button, check the counter if is not bigger that number of elements in the list and increment the counter:

if(counter < myObservableColection.Count)
    ++counter;

your previous function needs to check if counter is not negative number and decrement the counter.

You can try a more neat pattern with Enumerator

世态炎凉 2024-12-05 07:32:46

对于下一个按钮,您可以调用 GetEnumerator< /a> 在 ObservableCollection 上。这将为您提供一个 IEnumerator您可以在其中调用 Current 和 MoveNext。

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

For just a next button, you could call GetEnumerator on the ObservableCollection. This will give you an IEnumerator<T> on which you can call Current and MoveNext.

If you need to implement a previous then you would use a solution more like lukas', with an index.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文