public override void RegisterAttributeTypes() { AttributeTypesToActionsDictionary.Add( typeof(MvxWindowPresentationAttribute), new MvxPresentationAttributeAction { ShowAction = (viewType, attribute, request) => { var view = WpfViewLoader.CreateView(request); return(ShowWindow(view, (MvxWindowPresentationAttribute)attribute, request)); }, CloseAction = (viewModel, attribute) => CloseWindow(viewModel) }); AttributeTypesToActionsDictionary.Add( typeof(MvxContentPresentationAttribute), new MvxPresentationAttributeAction { ShowAction = (viewType, attribute, request) => { var view = WpfViewLoader.CreateView(request); return(ShowContentView(view, (MvxContentPresentationAttribute)attribute, request)); }, CloseAction = (viewModel, attribute) => CloseContentView(viewModel) }); }
public override void RegisterAttributeTypes() { AttributeTypesToActionsDictionary.Register <ModalPresentationAttribute>( (_, attribute, request) => { var view = WpfViewLoader.CreateView(request); return(ShowModalWindow(view, attribute, request)); }, (viewModel, _) => CloseWindow(viewModel)); base.RegisterAttributeTypes(); }
public override void RegisterAttributeTypes() { base.RegisterAttributeTypes(); AttributeTypesToActionsDictionary.Add(typeof(OutletBasedPresentationAttribute), new MvxPresentationAttributeAction { ShowAction = (viewType, attribute, request) => { var view = WpfViewLoader.CreateView(request); return(ShowInLayoutView(view, (OutletBasedPresentationAttribute)attribute, request)); }, CloseAction = (viewModel, attribute) => CloseLayoutView(viewModel, (OutletBasedPresentationAttribute)attribute) }); }
public override void RegisterAttributeTypes() { base.RegisterAttributeTypes(); AttributeTypesToActionsDictionary.Register <CustomMvxContentPresentationAttribute>( (viewType, attribute, request) => { var view = WpfViewLoader.CreateView(request); return(ShowContentView(view, (CustomMvxContentPresentationAttribute)attribute, request)); }, (viewModel, attribute) => { return(CloseContentView(viewModel)); }); }
public override void RegisterAttributeTypes() { AttributeTypesToActionsDictionary.Register <MvxWindowPresentationAttribute>( async(viewType, attribute, request) => { var view = await WpfViewLoader.CreateView(request).ConfigureAwait(false); return(await ShowWindow(view, attribute, request).ConfigureAwait(false)); }, (viewModel, attribute) => CloseWindow(viewModel)); AttributeTypesToActionsDictionary.Register <MvxContentPresentationAttribute>( async(viewType, attribute, request) => { var view = await WpfViewLoader.CreateView(request).ConfigureAwait(false); return(await ShowContentView(view, attribute, request).ConfigureAwait(false)); }, (viewModel, attribute) => CloseContentView(viewModel)); }
public override MvxBasePresentationAttribute GetOverridePresentationAttribute(MvxViewModelRequest request, Type viewType) { if (viewType?.GetInterface(nameof(IMvxOverridePresentationAttribute)) != null) { var viewInstance = WpfViewLoader.CreateView(viewType) as IDisposable; using (viewInstance) { MvxBasePresentationAttribute presentationAttribute = null; if (viewInstance is IMvxOverridePresentationAttribute overrideInstance) { presentationAttribute = overrideInstance.PresentationAttribute(request); } if (presentationAttribute == null) { MvxLogHost.Default?.Log(LogLevel.Warning, "Override PresentationAttribute null. Falling back to existing attribute."); } else { if (presentationAttribute.ViewType == null) { presentationAttribute.ViewType = viewType; } if (presentationAttribute.ViewModelType == null) { presentationAttribute.ViewModelType = request.ViewModelType; } return(presentationAttribute); } } } return(null); }
public override async ValueTask <MvxBasePresentationAttribute?> GetOverridePresentationAttribute(MvxViewModelRequest request, Type viewType) { if (viewType?.GetInterface(nameof(IMvxOverridePresentationAttribute)) != null) { var viewInstance = (await WpfViewLoader.CreateView(viewType).ConfigureAwait(false)) as IDisposable; using (viewInstance) { MvxBasePresentationAttribute?presentationAttribute = null; if (viewInstance is IMvxOverridePresentationAttribute overrideInstance) { presentationAttribute = overrideInstance.PresentationAttribute(request); } if (presentationAttribute == null) { MvxLog.Instance.Warn("Override PresentationAttribute null. Falling back to existing attribute."); } else { if (presentationAttribute.ViewType == null) { presentationAttribute.ViewType = viewType; } if (presentationAttribute.ViewModelType == null) { presentationAttribute.ViewModelType = request.ViewModelType; } return(presentationAttribute); } } } return(null); }