클릭 한 항목의 색인을 얻기 위해 아래의 GetListBoxItemIndex
함수를 구현하는 방법은 무엇입니까? 내가 성공하지 VisualTreeHelper
를 사용하여 시도 (의미, VisualTreeHelper
분명히 작동하지만, 나는 ... 트리 검색을 어디받지 못했습니다) 그것 때문에SelectedIndex 등을 사용하지 않고 ListBox 항목의 색인을 얻는 방법 (PreviewMouseDown에서 아직 아무것도 선택되지 않았습니다.)
private void MyListBox_OnPreviewMouseDown(object sender, MouseButtonEventArgs e){
var listBox = sender as ListBox;
var src = e.OriginalSource as DependencyObject;
if (src == null || listBox == null) return;
var i = GetListBoxItemIndex(listBox,src);
DragDrop.DoDragDrop(src, BoundCollection[i], DragDropEffects.Copy);
// BoundCollection defined as:
// ObservableCollection<SomeDataModelType> BoundCollection
}
는,이 상태에서 아직 선택 아무것도 없다는 것을 유의하시기 바랍니다 PreviewMouseDown
이벤트
감사합니다. 작동합니다. 하지만 왜 'ItemContainerGenerator'가 필요한지 설명 할 수 있습니까? 왜 아이템을 가져 오기 위해 "tree-walk"('VisualTreeHelper' 메소드) 할 수 없습니까? – Tar
업데이트를 살펴보십시오. – abdelkarim