コード例 #1
0
        public Task InitializeViewAsync(IViewModel viewModel, object view, IDataContext context = null)
        {
            var tcs = new TaskCompletionSource <object>();

            ThreadManager.InvokeOnUiThreadAsync(() =>
            {
                if (context == null)
                {
                    context = DataContext.Empty;
                }
                view        = ToolkitExtensions.GetUnderlyingView <object>(view);
                var oldView = viewModel.GetCurrentView <object>(false);
                if (ReferenceEquals(oldView, view))
                {
                    tcs.SetResult(null);
                    return;
                }
                if (oldView != null)
                {
                    CleanupViewInternal(viewModel, oldView, context);
                }
                InitializeView(viewModel, view, context);
                ViewInitialized?.Invoke(this, new ViewInitializedEventArgs(view, viewModel, context));
                tcs.SetResult(null);
            });
            return(tcs.Task);
        }
コード例 #2
0
ファイル: Forms.cs プロジェクト: Ezeji/Xamarin.Forms
 internal static void SendViewInitialized(this VisualElement self, TNativeView nativeView)
 {
     ViewInitialized?.Invoke(self, new ViewInitializedEventArgs {
         View = self, NativeView = nativeView
     });
 }
コード例 #3
0
 public static void SendViewInitialized(this VisualElement self, Ooui.Element nativeView)
 {
     ViewInitialized?.Invoke(self, new ViewInitializedEventArgs {
         View = self, NativeView = nativeView
     });
 }