繁体   English   中英

EventHandler实现F#

[英]EventHandler Implementation F#

我正在F#实现以下C#代码:

    using Softweb.Xamarin.Controls.iOS;

public class DemoViewController : UIViewController, ICardViewDataSource
{

    public CardView DemoCardView { get; set; }

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        DemoCardView = new CardView();

        //Wire up events
        DemoCardView.DidSwipeLeft += OnSwipe;
        DemoCardView.DidSwipeRight += OnSwipe;
        DemoCardView.DidCancelSwipe += OnSwipeCancelled;
        DemoCardView.DidStartSwipingCardAtLocation += OnSwipeStarted;
        DemoCardView.SwipingCardAtLocation += OnSwiping;
        DemoCardView.DidEndSwipingCard += OnSwipeEnded;
    }

    void OnSwipe(object sender, SwipeEventArgs e)
    {
        Console.WriteLine("View swiped.\n");
    }

    void OnSwipeCancelled(object sender, SwipeEventArgs e)
    {
        Console.WriteLine("Swipe cancelled.\n");
    }

    void OnSwipeStarted(object sender, SwipingStartedEventArgs e)
    {
        Console.Write("Started swiping at location {0}\n", e.Location);
    }

    void OnSwiping(object sender, SwipingEventArgs e)
    {
        Console.Write("Swiping at location {0}\n", e.Location);
    }

    void OnSwipeEnded(object sender, SwipingEndedEventArgs e)
    {
        Console.Write("Ended swiping at location {0}\n", e.Location);
    }
}

我不确定如何复制

DemoCardView.DidSwipeLeft += OnSwipe;

语法F#是什么的equivilant +=F# 我知道这是事件订阅的原因,这使我认为我应该为此使用F#Add方法,但是我不确定如何使用。 另外, onSwipeonSwipeCancelled ...函数的签名应该是什么。 DidSwipeLeft和其他人期望的类型是'IEvent<EventHandler<SwipeEventArgs>,SwipeEventArgs>

完整的API称为XCardView,可以在以下位置找到:

https://components.xamarin.com/gettingstarted/XCardView/true

let onSwipe = fun args -> printfn "View swiped"

DemoCardView.DidSwipeLeft.Add(onSwipe)

或者,简单地

DemoCardView.DidSwipeLeft.Add(fun args -> printfn "View swiped")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM