在实现拖放时,处理tabControl的drop事件似乎存在问题。
选项一:使用标头(在我的情况下为TextBlock)上的Drop属性。在这种情况下,可以在事件处理程序中接收DragEventArgs并可以轻松确定源项目。
Drop =“ TabDropEvent”
选项二:使用RoutedCommand,例如通过Interaction.Triggers。在这里,我们得到了目标物品,但不知道来源。
i:InvokeCommandAction Command =“ {x:Static local:MainWindow.TabDrop}” CommandParameter =“ {Binding}”
因此,我试图同时实现两者。实际上效果很好。 TabDropEvent首先出现,我可以将源项目存储在视图模型中。事件触发器(TabDrop)紧随其后,并包含所有必要的信息。
我的问题:这是有效的方法吗?我可以依靠事件的顺序吗?