2011-03-10 66 views
1

我正在设计一个使用大量嵌套控件的应用程序。没有进入太多(不必要的)细节,基本思想是我有一个ListView,其中每个ListItem可能包含一个或多个ListView,并且这可能会无限重复(ListView内的ListView)。WPF中的嵌套触发器

我在每个ListView上设置了一个DragEnter/DragLeave触发器,这样当光标进入该区域时,背景会发生变化。问题是,由于嵌套,触发器触发层次结构中的每个ListView,这不是我想要的 - 我只想直接在光标下的ListView进行动画处理。有没有简单的方法来防止嵌套控件上的触发器传播?

回答

1

您需要防止这些事件冒泡到外部ListView,从而防止触发器触发。

您可能需要使用从ListView派生的自定义类(例如MyListView)并覆盖OnDragEnter/OnDragLeave并将e.Handled设置为true。

您也可以使用ListView类型的class handler,您再次将e.Handled设置为true。这可能发生在EventTrigger之前,这会有效地阻止触发器触发。