如果事件未完成,取消重复呼叫

时间:2015-10-22 11:10:55

标签: c# events

我有一个包含元素的列表,每个元素都拥有它自己的swipeEvent。 在该元素中,它创建了一个新的obj列表。如下所示

 public Object inserPages(BoxView boxview, List<T> list)
 {
     count++;

     Object obj = new Object();
     Object obj2 = new Object();

     obj.Swiped += (s, e) =>
     {
          obj.TranslateTo(-1200, 0, 500, null);
          obj2.TranslateTo(-1200, 0, 500, null);

          list.Insert(0, boxview);

          list.Insert(1, inserPages(boxview, list));

     };

     return obj;
}

现在我需要采取某种方式在被调用事件仍在运行时禁用所有其他对象滑动事件。

有没有人知道如何做到这一点?

1 个答案:

答案 0 :(得分:2)

创建bool标志:

private bool isSwipping;

public Object inserPages(BoxView boxview, List<T> list)
{   
    // ...

    obj.Swiped += (s, e) =>
    {
        if (isSwipping)
            return;

        isSwipping = true;

        // do something

        isSwipping = false;
    };

    // ...
}