我有两个列表框,我将一个项目拖到另一个项目。使用2009年11月版的Silverlight 3 Toolkit的ListBoxDragDropTarget构建。我在第二个列表框的Drop事件上有一个EventHandler。我正在尝试获取正在插入的项目的索引,以便我可以在项目集合中看到它之前的内容。有谁知道如何获取要在已删除项目上添加的项目的索引?
答案 0 :(得分:1)
我想我找到了解决方案。
在ListBox(toList)上有一个ItemsContainerGenerator,它有一个事件ItemsChanged。通过检查以确保ItemsChangedEventArgs(e)操作是添加,然后根据ItemsChangedEventArgs返回的位置计算索引,我能够将项目放入ListBox。以下是代码。
刚刚传递了InitializeComponent(),添加了新的事件处理程序。
toList.ItemContainerGenerator.ItemsChanged + = new System.Windows.Controls.Primitives.ItemsChangedEventHandler(ItemContainerGenerator_ItemsChanged);
然后添加处理程序本身。
空隙 ItemContainerGenerator_ItemsChanged(对象 发件人, System.Windows.Controls.Primitives.ItemsChangedEventArgs e){if(e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) {int index =(e.Position.Index + e.Position.Offset); object obj = toList.Items [指数];}}