0

我有列表框项目的行为类。

public class DragAndDropBehavior : Behavior<AllocationItem>
{
    protected override void OnAttached()
    {
        base.OnAttached();
        AssociatedObject.StartDrag += OnStartDrag;
    }

    protected override void OnDetaching()
    {
        base.OnDetaching();
        Cleanup(true);
    }
    // Some drag logic.
}

在这种行为中,我在图表上移动项目预览并在需要时滚动此图表。当我滚动此图表时,有一刻我的拖动元素从视图中消失了 - 它超出了视图范围。在这一刻,所有处理程序都不会调用。任何建议为什么?

我有一些更新。当我的元素隐藏触发OnDetaching()方法和拖动删除的所有处理程序时。所以,问题 chanches - 如何忽略OnDetaching()元素隐藏?

4

1 回答 1

0

我解决了这个问题。我的项目放置在自定义面板(图表)上,并且此自定义面板已覆盖 MeasureOverride(Size size) 方法,因此所有项目更新和不可见项目从视图 => OnDetaching() 行为触发方法中处理。我通过在我的自定义面板中添加拖动标志来解决它,如果我需要处理不可见的元素,我可以通过这个标志值来解决它。

于 2013-06-18T14:31:41.493 回答