C# 如何只添加10项

C# 如何只添加10项,c#,listview,listbox,.net-2.0,undo-redo,C#,Listview,Listbox,.net 2.0,Undo Redo,我有一位经理。 我只需要在listview中查看10个条目。 已经沸腾的大脑如何去做 此代码被添加到viewlist所有记录中,但我只需要最后10条 lvUndoStack.Items.Clear(); var list = new List<object>(); foreach (var command in UndoRedoManager.UndoCommands) { list.Insert(0, command.ToString()); } lvUndoStack.I

我有一位经理。 我只需要在listview中查看10个条目。 已经沸腾的大脑如何去做

此代码被添加到viewlist所有记录中,但我只需要最后10条

lvUndoStack.Items.Clear();
var list = new List<object>();
foreach (var command in UndoRedoManager.UndoCommands)
{
    list.Insert(0, command.ToString());
}
lvUndoStack.Items.AddRange(list.ToArray());
lvUndoStack.SelectedIndex = lvUndoStack.Items.Count - 1;
indexSeletedItemUndoStack = lvUndoStack.SelectedIndex;

list = new List<object>();
foreach (var command in UndoRedoManager.RedoCommands)
{
    list.Insert(0, command.ToString());
}
lvUndoStack.Items.AddRange(list.ToArray());

我需要10英镑。如果启动撤消4,则您需要显示最后一个或最多10个中的所有内容。如果我理解您的问题,则您需要(最多)最后10个撤消和最后10个重做命令。在获得撤消命令列表后,使用此命令可获得最后10个:

if (list.Count <= 10)
{
    lvUndoStack.Items.AddRange(list.ToArray());
}
else
{
    for (int i = 0; i < 10; i++)
    {
        lvUndoStack.Items.Add(list[0]);
    }
}

重做命令也有类似的功能。它从UI层中删除了一堆代码,并为您提供了在以后轻松切换最大项目数的灵活性,而且通常(同样是IMO)似乎是一种更好的方式。

前10个,后10个?您绑定到ListView的是什么,而不是我认为的undoStack?lvUndoStack-它是ListView。我不使用装订。我更新帖子请看。
if (list.Count <= 10)
{
    lvUndoStack.Items.AddRange(list.ToArray());
}
else
{
    for (int i = 0; i < 10; i++)
    {
        lvUndoStack.Items.Add(list[0]);
    }
}
public List<Object> GetUndoCommands(int numberOfCommands);
lvUndoStack.Items.AddRange(UndoRedoManager.GetUndoCommands(10).ToArray());