Вы все еще можете использовать DragStarting
, но вы должны добавить его к самому содержанию элемента в вашем DataTemplate
:
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<Grid CanDrag="True" DragStarting="ItemDragStartingHandler">
...
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Если это приводит к тому, что событие щелчка не работает должным образом, вы можете попробоватьнастройка самого контейнера ListViewItem
, который может работать.Щелкните правой кнопкой мыши ListView
в конструкторе или в окне "Структура документа", выберите Изменить дополнительные шаблоны , а затем Изменить контейнер сгенерированного элемента .В последнем меню выберите Редактировать копию ...
Вы получите Style
, который может быть довольно длинным, но в нем вы найдете следующее:
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<ListViewItemPresenter DragStarting="ItemDragStartingHandler" x:Name="Root" ...>
Вы можете применить DragStarting
событие к ListViewItemPresenter
, и это может удовлетворить ваши потребности.