我不知道标题是否表达我想要的内容。我有一个WPF中的ListBox,我生成了很多元素。当我点击某个元素的同时仍然生成,我希望我的选定项目不会在列表中向下移动,因此我再也看不到它了,我想保留在点击它的确切位置。列表框项目在选择后保持专注
如果这是可能的,有人可以指出一些想法如何在C#中做到这一点?
谢谢。
我不知道标题是否表达我想要的内容。我有一个WPF中的ListBox,我生成了很多元素。当我点击某个元素的同时仍然生成,我希望我的选定项目不会在列表中向下移动,因此我再也看不到它了,我想保留在点击它的确切位置。列表框项目在选择后保持专注
如果这是可能的,有人可以指出一些想法如何在C#中做到这一点?
谢谢。
假设这是连一个好主意,你正在使用的WinForms
第1步:
确定在源所选项目的索引。
第2步:
当您将项目添加到ListBox
同时确保分裂ListBox
处的项目以前是在这一点上插入项,然后添加在该项目的剩余部分,该指数在你如果它现在位于列表中的其他位置,则已将其删除。
代码:
//让我们假设你知道如何获得该项目的位置,点击时和 //项目保存到一个名为OriginalItem
public void PutTheItemInTheSameSpot()
{
var listboxitems = (List<Integer>)YourListBox.DataSource;
var originalClikedItem = OriginalItem;
var topPart = new List<Integer>();
for (i = 0; i < itemPosition; i++)
{
topPart.Add(listboxItems[i]);
}
topPart.Add(originalClickedItem);
var bottomPart = listboxitems.Remove(toppart);
YourListBox.DataSource = toppart.AddRange(bottomPart);
}
看到你的WPF编辑
该应该应该在想法。
是的,谢谢你的ideea,为什么我要这个,因为我可以右键点击该项目,并与它的东西,但是当我选择的项目,然后消失,所以这有点烦人 – Kobe
只是一个想法:只要将项目添加到ListBox中,您就可以尝试让视图响应事件。在事件处理程序,你可能会迫使所选项目滚动到视图可能保持它在当前的“可视”的位置:
listBox.ScrollIntoView(listBox.SelectedItem);
我以前从来没有试过这种因此它可能会或可能不会产生预期的影响?
什么UI,Winforms,WPF,ASP .NET? – msarchet
啊,对不起,我忘了说:WPF – Kobe