Catel.MVVM.Providers.LogicBase.OnTargetViewLoadedInternal C# (CSharp) Method

OnTargetViewLoadedInternal() private method

Called when the TargetView has just been loaded.
This method will call the OnTargetViewLoadedAsync which can be overriden for custom behavior. This method is required to protect from duplicate loaded events.
private OnTargetViewLoadedInternal ( object sender, EventArgs e ) : void
sender object The sender.
e System.EventArgs The instance containing the event data.
return void
        private async void OnTargetViewLoadedInternal(object sender, EventArgs e)
        {
            if (!CanLoad)
            {
                return;
            }

            Log.Debug($"Target view '{TargetViewType?.Name}' has been loaded");

            var view = TargetView;
            if (view != null)
            {
                _viewManager.RegisterView(view);
            }

            IsTargetViewLoaded = true;

            var dataContext = view.DataContext;
            LastKnownDataContext = (dataContext != null) ? new WeakReference(dataContext) : null;

            await OnTargetViewLoadedAsync(sender, e);

            TargetView.EnsureVisualTree();

            var targetViewAsViewModelContainer = TargetView as IViewModelContainer;
            if (targetViewAsViewModelContainer != null)
            {
                ViewToViewModelMappingHelper.InitializeViewToViewModelMappings(targetViewAsViewModelContainer);
            }

            TargetView.Dispatch(() =>
            {
#pragma warning disable 4014
                // No need to await
                InitializeViewModelAsync();
#pragma warning restore 4014
            });

            IsLoading = false;
        }