private IPage OpenEditDialog(DialogViewModelBase master, StokDocumentType documentType, int id) { switch (documentType) { case StokDocumentType.IncomeDoc: return(navigation.OpenTdiTab <Dialogs.Stock.IncomeDocDlg, int>(master, id)); case StokDocumentType.ExpenseEmployeeDoc: return(navigation.OpenViewModel <ExpenseEmployeeViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id))); case StokDocumentType.ExpenseObjectDoc: return(navigation.OpenViewModel <ExpenseObjectViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id))); case StokDocumentType.CollectiveExpense: return(navigation.OpenViewModel <CollectiveExpenseViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id))); case StokDocumentType.WriteoffDoc: return(navigation.OpenViewModel <WriteOffViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id))); case StokDocumentType.TransferDoc: return(navigation.OpenViewModel <WarehouseTransferViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id))); case StokDocumentType.Completion: return(navigation.OpenViewModel <CompletionViewModel, IEntityUoWBuilder>(master, EntityUoWBuilder.ForOpen(id))); default: throw new NotSupportedException($"Тип документа {documentType} не поддерживается."); } }
public CommonDialog(DialogViewModelBase vm) { DataContext = vm; InitializeComponent(); Loaded += (s, a) => Lib.ForceSoftwareRenderModeIfNeeded(this); }
public IPage <TViewModel> OpenViewModel <TViewModel, TCtorArg1, TCtorArg2>(DialogViewModelBase master, TCtorArg1 arg1, TCtorArg2 arg2, OpenPageOptions options = OpenPageOptions.None, Action <ContainerBuilder> addingRegistrations = null) where TViewModel : DialogViewModelBase { var types = new Type[] { typeof(TCtorArg1), typeof(TCtorArg2) }; var values = new object[] { arg1, arg2 }; return(OpenViewModelTypedArgs <TViewModel>(master, types, values, options, addingRegistrations)); }
private Task <bool?> ShowDialog <T>(DialogViewModelBase vm, object owner, out T result, string title = null, int maxWidth = 0, int maxHeight = 0) { DialogWindow win = new DialogWindow(); if (owner != null) { win.Owner = owner as Window; } if (maxHeight > 0) { win.MaxHeight = maxHeight; } if (maxWidth > 0) { win.MaxWidth = maxWidth; } if (!string.IsNullOrEmpty(title)) { win.Title = title; } win.DataContext = vm; win.ShowDialog(); result = (T)vm.UserDialogResult; return(Task.FromResult(vm.DialogResult)); }
public async void ShowDialog(DialogViewModelBase dialogViewModel) { DialogViewModel = dialogViewModel; await DialogViewModel.DialogCompletedTask; DialogViewModel = null; }
public ITdiPage OpenTdiTab <TTab, TCtorArg1, TCtorArg2>(DialogViewModelBase master, TCtorArg1 arg1, TCtorArg2 arg2, OpenPageOptions options = OpenPageOptions.None, Action <ContainerBuilder> addingRegistrations = null) where TTab : ITdiTab { var types = new Type[] { typeof(TCtorArg1), typeof(TCtorArg2) }; var values = new object[] { arg1, arg2 }; return(OpenTdiTab <TTab>(master, types, values, options, addingRegistrations)); }
void SearchEmployee_EntitySelected(object sender, EntitySelectedEventArgs e) { MainTelemetry.AddCount("SearchEmployeeToolBar"); var id = DomainHelper.GetId(e.Entity); DialogViewModelBase after = null; if (cnbOpenInWindow.Active) { IPage replaced; if (NavigationManager.CurrentPage?.ViewModel is EmployeeViewModel) { replaced = NavigationManager.CurrentPage; } else { replaced = NavigationManager.IndependentPages.Reverse().FirstOrDefault(x => x.ViewModel is EmployeeViewModel); } if (replaced != null) { IPage last = null; foreach (var page in NavigationManager.TopLevelPages) { if (page == replaced) { after = last?.ViewModel; break; } last = page; } NavigationManager.AskClosePage(replaced); } } NavigationManager.OpenViewModel <EmployeeViewModel, IEntityUoWBuilder>(after, EntityUoWBuilder.ForOpen(id)); }
/// <summary> /// Открывает диалог по его ViewModel, /// связывает ViewModel с View, /// ждёт завершения диалога. /// </summary> /// <typeparam name="TResult">Тип, который должен прийти в результат.</typeparam> /// <param name="dialogViewModel">ViewModel открываемого диалога.</param> /// <returns>Результат диалога.</returns> public TResult OpenDialog <TResult>(DialogViewModelBase <TResult> dialogViewModel) { IDialogWindow window = new DialogWindow(); window.DataContext = dialogViewModel; window.ShowDialog(); return(dialogViewModel.DialogResult); }
public T OpenDialog <T>(DialogViewModelBase <T> viewModel) { IDialogWindow window = new DialogWindow(); window.DataContext = viewModel; window.ShowDialog(); return(viewModel.DialogResult); }
public ITdiPage OpenTdiTabNamedArgs <TTab>(DialogViewModelBase master, IDictionary <string, object> ctorArgs, OpenPageOptions options = OpenPageOptions.None, Action <ContainerBuilder> addingRegistrations = null) where TTab : ITdiTab { return((ITdiPage)OpenViewModelInternal( FindPage(master), options, () => hashGenerator?.GetHashNamedArgs <TTab>(null, ctorArgs), (hash) => tdiPageFactory.CreateTdiPageNamedArgs <TTab>(ctorArgs, hash, addingRegistrations) )); }
public CommonEEVMBuilderFactory(DialogViewModelBase dialogViewModel, TBindedEntity source, IUnitOfWork unitOfWork, INavigationManager navigation, ILifetimeScope autofacScope = null) { BindedEntity = source; DialogViewModel = dialogViewModel; UnitOfWork = unitOfWork; NavigationManager = navigation; AutofacScope = autofacScope; }
public IPage <TViewModel> OpenViewModelNamedArgs <TViewModel>(DialogViewModelBase master, IDictionary <string, object> ctorArgs, OpenPageOptions options = OpenPageOptions.None, Action <ContainerBuilder> addingRegistrations = null) where TViewModel : DialogViewModelBase { return((IPage <TViewModel>)OpenViewModelInternal( FindPage(master), options, () => hashGenerator?.GetHashNamedArgs <TViewModel>(master, ctorArgs), (hash) => GetPageFactory <TViewModel>().CreateViewModelNamedArgs <TViewModel>(master, ctorArgs, hash, addingRegistrations) )); }
public DialogWindow(DialogViewModelBase vm) { InitializeComponent(); DataContext = vm; vm.RequestClose += () => DialogResult = true; }
public ITdiPage OpenTdiTab <TTab>(DialogViewModelBase master, Type[] ctorTypes, object[] ctorValues, OpenPageOptions options = OpenPageOptions.None, Action <ContainerBuilder> addingRegistrations = null) where TTab : ITdiTab { return((ITdiPage)OpenViewModelInternal( FindPage(master), options, () => hashGenerator?.GetHash <TTab>(null, ctorTypes, ctorValues), (hash) => tdiPageFactory.CreateTdiPageTypedArgs <TTab>(ctorTypes, ctorValues, hash, addingRegistrations) )); }
public virtual IPage EditDocumentDialog(DialogViewModelBase master, StokDocumentType documentType, int id) { var start = DateTime.Now; var page = OpenEditDialog(master, documentType, id); logger.Info($"Документ открыт за {(DateTime.Now - start).TotalSeconds} сек."); return(page); }
/// <summary> /// Initilize input states such that user can input information /// with a view based GUI (eg.: dialog) /// </summary> public void InitDialogInputData() { this.OpenCloseView = new Base.DialogViewModelBase(); // Attach delegate method to validate user input on OK // Not setting this means that user input is never validated and view will always close on OK //if (this.mOpenCloseView != null) // this.mOpenCloseView.EvaluateInputData = this.ValidateData; }
/// <summary> /// Instantiates a new <see cref="DialogWindow"/> and assigns the specified <paramref name="viewModel"/> as it's DataContext. /// </summary> /// <param name="viewModel">The <see cref="DialogWindow"/>'s DataContext.</param> public void OpenDialog(DialogViewModelBase viewModel) { IDialogWindow dialog = new DialogWindow() { DataContext = viewModel }; _ = dialog.ShowDialog(); }
private FrameworkElement CreateMessageBoxView(DialogViewModelBase viewModel) { var textBlock = new FormattedTextBlock(); textBlock.Margin = new Thickness(4); textBlock.SetBinding(FormattedTextBlock.TextProperty, "Message"); textBlock.TextWrapping = TextWrapping.Wrap; return(new OkCancelView(textBlock)); }
private FrameworkElement CreateMessageBoxView(DialogViewModelBase viewModel) { var textBlock = new System.Windows.Controls.TextBlock(); textBlock.Margin = new Thickness(4); textBlock.SetBinding(System.Windows.Controls.TextBlock.TextProperty, "Message"); textBlock.TextWrapping = TextWrapping.Wrap; return(new Jamiras.Controls.OkCancelView(textBlock)); }
public virtual void EditDocumentDialog(DialogViewModelBase master, OperationToDocumentReference reference) { var page = EditDocumentDialog(master, reference.DocumentType.Value, reference.DocumentId.Value); if (page.ViewModel is ISelectItem select && reference.ItemId.HasValue) { select.SelectItem(reference.ItemId.Value); } }
public T OpenDialog <T>(DialogViewModelBase <T> dialogViewModelBase) { IDialogWindow dialogWindow = new StepAddDialogWindow { DataContext = dialogViewModelBase }; dialogWindow.ShowDialog(); return(dialogViewModelBase.DialogResult); }
/// <summary> /// Copy constructor /// </summary> public UsernameViewModel(UsernameViewModel copyThis) : this() { if (copyThis == null) { return; } this.mOpenCloseView = new DialogViewModelBase(copyThis.mOpenCloseView); }
public void OpenDialog(DialogViewModelBase viewModel, string dialogIdentifier) { var view = _viewManager.CreateViewForModel(viewModel); DialogHost.Show(view, dialogIdentifier, viewModel.OnDialogClosed); viewModel.DialogViewModelHost = this; ActiveDialogViewModel = viewModel; IsOpen = true; }
public LegacyEEVMBuilderFactory( DialogViewModelBase dialogViewModel, ITdiTab dialogTab, TBindedEntity source, IUnitOfWork unitOfWork, INavigationManager navigation, ILifetimeScope autofacScope = null) : base(dialogViewModel, source, unitOfWork, navigation, autofacScope) { GetDialogTab = () => dialogTab; }
/// <summary> /// Opens Dialog window and return open result /// </summary> /// <returns></returns> public static DialogResult OpenDialog(DialogViewModelBase viewModel) { var dialogWindow = new DialogWindow(); //create dialog window dialogWindow.DataContext = viewModel; //assign datacontext to dialog dialogWindow.ShowDialog(); //show dialog window var dialogResult = (dialogWindow.DataContext as DialogViewModelBase).ActivationDialogResult; //get dialog result return(dialogResult); //return dialog result }
/// <summary> /// Launches the modeless Alert Dialog on screen. /// </summary> /// <param name="vm">viewmodel for the Alert Dialog</param> /// <param name="callBack">callback is called when the dialog is closed</param> /// <param name="dlgWidth">Dialog Width</param> /// <param name="dlgHeight">Dialog Height</param> public void LaunchModelessDialog(DialogViewModelBase vm, Action <DialogViewModelBase> callBack = null, double dlgWidth = 500, double dlgHeight = 200, bool isBindedWithOwner = true) { if (ModelessDlgInteractionRequest != null && vm != null) { Application.Current.Dispatcher.Invoke(new Action(() => { ModelessDlgInteractionRequest.Raise(vm, callBack, dlgWidth, dlgHeight); this.IsBindedWithOwner = isBindedWithOwner; })); } }
/// <summary> /// Validates a property of a <see cref="DialogViewModelBase{T}"/>. /// </summary> /// <param name="propertyName"> /// The property name. /// </param> /// <param name="dialogViewModelBase"> /// The dialog view model base. /// </param> /// <typeparam name="T"> /// The <see cref="Thing"/> the <see cref="DialogViewModelBase{T}"/> is connected to. /// </typeparam> /// <returns> /// The <see cref="string"/> with the error text. /// </returns> public static string ValidateProperty <T>(string propertyName, DialogViewModelBase <T> dialogViewModelBase) where T : Thing { // get the rule ValidationRule rule; // try to get a primary rule match var result = ValidationMap.TryGetValue(propertyName, out rule); var property = dialogViewModelBase.GetType().GetProperty(propertyName); // check for an active override var attribute = property.GetCustomAttributes(typeof(ValidationOverrideAttribute), true).Cast <ValidationOverrideAttribute>().SingleOrDefault(); if (attribute != null) { if (!attribute.IsValidationEnabled) { return(null); } // get the override rule from the table. If found override the rule. result = ValidationMap.TryGetValue(attribute.ValidationOverrideName, out rule); } // if no rule exists just return null in sign of ignorance if (!result) { return(null); } // get the value, if the value is null set to empty string (assume user entered no value to begin with) and check against that var propertyValue = property.GetValue(dialogViewModelBase) ?? string.Empty; var validationPass = Regex.IsMatch(propertyValue.ToString(), rule.Rule); if (validationPass) { if (dialogViewModelBase.ValidationErrors.Contains(rule)) { // remove rule if it exists in the viewmodel dialogViewModelBase.ValidationErrors.Remove(rule); } return(null); } if (!dialogViewModelBase.ValidationErrors.Contains(rule)) { dialogViewModelBase.ValidationErrors.Add(rule); } return(rule.ErrorText); }
public static async Task <DialogResult <T> > NavigateDialog <T>( this TargettedNavigationStack stack, DialogViewModelBase <T> dialog) { stack.To(dialog); var result = await dialog.GetDialogResultAsync(); stack.Back(); return(result); }
private async Task <object> ShowDialog(string identifier, DialogViewModelBase viewModel) { var view = _viewManager.CreateViewForModel(viewModel); _viewManager.BindViewToModel(view, viewModel); if (identifier == null) { return(await DialogHost.Show(view, viewModel.OnDialogOpened, viewModel.OnDialogClosed)); } return(await DialogHost.Show(view, identifier, viewModel.OnDialogOpened, viewModel.OnDialogClosed)); }
private DialogResult ShowDialog(DialogViewModelBase vm, Window owner) { DialogWindow win = new DialogWindow(); if (owner != null) { win.Owner = owner; } win.DataContext = vm; win.ShowDialog(); DialogResult result = (win.DataContext as DialogViewModelBase).UserDialogResult; return(result); }