在我的主视图Listbox
中,我设置了一个(除其他外)PreviewMouseLeftButtonDownEvent
用于支持拖放重新排序的。
var style = ListBox.ItemContainerStyle;
style.Setters.Add(new Setter(AllowDropProperty, true));
style.Setters.Add(new EventSetter(PreviewMouseLeftButtonDownEvent,
new MouseButtonEventHandler(Input_Down)));
private void Input_Down(object sender, EventArgs e)
{
if (!(sender is ListBoxItem))
return;
var draggedItem = sender as ListBoxItem;
isDragging = true;
StartDrag(draggedItem);
}
private void StartDrag(ListBoxItem draggedItem)
{
draggedItem.IsSelected = true;
DragDrop.DoDragDrop(draggedItem, draggedItem.DataContext, DragDropEffects.Move);
}
在其中ListBox.ItemTemplate
有一个带有更新命令的按钮:
<Button Command="{Binding Path=UpdateCommand}" Content="Button"/>
但是,当我设置PreviewMouseLeftButtonDownEvent
. 如果我删除PreviewMouseLeftButtonDownEvent
设置器,该命令可以正常工作。关于为什么会这样以及如何使用两者的任何想法?