事件处理程序实现 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#
中的语法(F#
中 +=
的等价物是什么)。我知道这是负责事件订阅,这让我觉得我应该为此使用 F#
中的 Add
方法,但我不确定如何使用。此外,onSwipe
、onSwipeCancelled
... 函数的签名应该是什么。 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")
我正在 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#
中的语法(F#
中 +=
的等价物是什么)。我知道这是负责事件订阅,这让我觉得我应该为此使用 F#
中的 Add
方法,但我不确定如何使用。此外,onSwipe
、onSwipeCancelled
... 函数的签名应该是什么。 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")