Catel.MVVM.Providers.UserControlLogic.CreateViewModelWrapper C# (CSharp) Method

CreateViewModelWrapper() private method

Creates the view model wrapper.
private CreateViewModelWrapper ( bool checkIfWrapped = true ) : void
checkIfWrapped bool if set to true, check if the view is already wrapped.
return void
        private void CreateViewModelWrapper(bool checkIfWrapped = true)
        {
            var dependencyResolver = this.GetDependencyResolver();

            var targetView = TargetView;

            var viewModelWrapperService = dependencyResolver.Resolve<IViewModelWrapperService>();
            if (checkIfWrapped || !viewModelWrapperService.IsWrapped(targetView))
            {
                var wrapOptions = WrapOptions.None;

#if NET || SL5
                if (CreateWarningAndErrorValidatorForViewModel)
                {
                    wrapOptions |= WrapOptions.CreateWarningAndErrorValidatorForViewModel;
                }
#endif

#if !XAMARIN
                if (TransferStylesAndTransitionsToViewModelGrid)
                {
                    wrapOptions |= WrapOptions.TransferStylesAndTransitionsToViewModelGrid;
                }
#endif

                Action action = () => viewModelWrapperService.Wrap(targetView, this, wrapOptions);

                // NOTE: Beginning invoke (running async) because setting of TargetControl Content property causes memory faults
                // when this method called by TargetControlContentChanged handler. No need to await though.
#if NETFX_CORE && !UAP
                var dispatcher = ((FrameworkElement)TargetView).Dispatcher;
#pragma warning disable 4014
                dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { action(); });
#pragma warning restore 4014
#else
                action();
#endif
            }
        }