你好!告诉我如何组织一定数量的数组元素的滚动。在开放空间中找到此代码。它有效,但没有我想要的那么好。
private static Func<int, bool> gt(int val)
{
return (i => i > val);
}
private static Func<int, bool> lt(int val)
{
return (i => i < val);
}
int q; // начало поиска
int w = 6; // конец поиска
List<int> items = new List<int>();
private void button4_Click(object sender, RoutedEventArgs e)
{
q = 0;
w = 6;
listBox.Items.Clear();
items.Clear();
items.Add(1); // Имеется некоторое колл-во элементов
items.Add(2);
items.Add(3);
items.Add(4);
items.Add(5);
items.Add(6);
items.Add(7);
items.Add(8);
items.Add(9);
items.Add(10);
items.Add(11);
items.Add(12);
items.Add(13);
List<int> result = new List<int>(items.Where(gt(q)).Where(lt(w)));
foreach (int i in result)
{
listBox.Items.Add(i.ToString());
q++;
}
}
// ЛИСТАЕМ ВПЕРЕД
private void button5_Click(object sender, RoutedEventArgs e)
{
listBox.Items.Clear();
List<int> result = new List<int>(items.Where(gt(q)).Where(lt(w+=5)));
foreach (int i in result)
{
listBox.Items.Add(i.ToString());
q++;
}
}
// ЛИСТАЕМ НАЗАД
private void button6_Click(object sender, RoutedEventArgs e)
{
listBox.Items.Clear();
List<int> result = new List<int>(items.Where(lt(w)).Where(gt(q-=5)));
foreach (int i in result)
{
listBox.Items.Add(i.ToString());
w--;
}
}
这个方法可行,但是有一个小问题。前进后,变量会根据轨迹进行调整。滚动,如果此时返回上一页,则先更新变量,但数据不会改变。要后退一步,请双击该按钮。这当然很烦人。
接下来可以进行分页。方法:
要控制前进/后退,您需要知道元素的总数
并确保页码不小于零且不大于可能的页数