Мне нужно событие OnDragEnter
для каждой ячейки в моем WPF Datagrid.
Я попробовал это:
<ControlTemplate TargetType="{x:Type my:DataGridCell}" x:Key="RowTemplate">
<ContentPresenter DragEnter="ContentPresenter_DragEnter" >
</ContentPresenter>
</ControlTemplate>
Но, похоже, не работает. Есть идеи, люди?
Редактировать: Спасибо за ответы, я понял, что столкнулся с другой проблемой, хотя:
Моя настоящая проблема заключалась в том, что элемент управления TextBox
всегда помечает события перетаскивания как обработанные , поэтому даже если вы установите AllowDrop="True"
, будет выглядеть, что AllowDrop не работает. Это не ошибка, это поведение на самом деле задумано.
Я использовал Preview Preview, чтобы предвидеть это и иметь возможность обрабатывать события D'n'D.
<TextBox
AllowDrop="True"
PreviewDragEnter="TextBox_PreviewDragOver"
PreviewDragOver="TextBox_PreviewDragOver"
PreviewDrop="TextBox_PreviewDrop">
<TextBox/>
Надеюсь, это поможет.
Я отмечаю ваши ответы как ответы, поскольку они были точны в отношении исходного вопроса.