public async void Set(TaskCompletionSource <UIKit.UIView> onLoaded) { if (Element is Layout && Container != null) { onLoaded.SetResult(Container); } else if (Control != null) { onLoaded.SetResult(Control); } else { var asyncEventListener = new AsyncEventListener(() => { /* * Console.WriteLine("Loaded event " + LoadedControl + " and " + Control); * Console.WriteLine("taskcomsource: " + onLoaded); */ onLoaded.SetResult(LoadedControl); // Console.WriteLine("after set taskcomsource: " + onLoaded); }); Loaded += asyncEventListener.Listen; await asyncEventListener.Successfully; Loaded -= asyncEventListener.Listen; } }
public async void Set(TaskCompletionSource <Android.Views.View> onLoaded) { if (Element is Layout && Container != null) { // Console.WriteLine(Element + " is layout. returning " + Container); onLoaded.SetResult(Container); } else if (Control != null) { // Console.WriteLine("Assuming " + Element + " is Control returning: " + Control); onLoaded.SetResult(Control); } else { var asyncEventListener = new AsyncEventListener(() => { onLoaded.SetResult(LoadedControl); }); Loaded += asyncEventListener.Listen; await asyncEventListener.Successfully; Loaded -= asyncEventListener.Listen; } }