public void Close(IChildViewModel viewModel) { var window = _openedWindows[viewModel.GetType()]; _openedWindows.Remove(viewModel.GetType()); Application.Current.Dispatcher.BeginInvoke(new Action(() => window.Close()), null); }
public void Close(IChildViewModel viewModel, bool? result) { var tuple = _openedWindows[viewModel.GetType()]; _openedWindows.Remove(viewModel.GetType()); Application.Current.Dispatcher.BeginInvoke(new Action(() => tuple.Item1.Close()), null); tuple.Item2.SetResult(result); }
private void ShowWindowInternal(IChildViewModel viewModel, bool showDialog) { var windowType = ViewTypeResolver.ResolveViewType(viewModel.GetType()); var window = (Window)Activator.CreateInstance(windowType); _openedWindows.Add(viewModel.GetType(), window); window.DataContext = viewModel; if (showDialog) window.ShowDialog(); else window.Show(); }
public MessageViewModel ShowMessage(IChildViewModel parent, string message, string title, params string[] buttons) { if (buttons.IsNullOrEmpty()) { buttons = MessageButtons.Ok.ToArray(); } var messageViewModel = _serviceLocator.GetInstance<MessageViewModel>(); messageViewModel.Parent = parent; messageViewModel.SetTitle(title); messageViewModel.Message = message; messageViewModel.Buttons.AddRange(buttons); messageViewModel.Show(); return messageViewModel; }
private Task<bool?> ShowWindowInternal(IChildViewModel viewModel, bool showDialog) { var tcs = new TaskCompletionSource<bool?>(); var windowType = ViewTypeResolver.ResolveViewType(viewModel.GetType()); var window = (Window) Activator.CreateInstance(windowType); _openedWindows.Add(viewModel.GetType(), new Tuple<Window, TaskCompletionSource<bool?>>(window, tcs)); window.DataContext = viewModel; if (showDialog) window.ShowDialog(); else window.Show(); return tcs.Task; }
public void ShowDialog(IChildViewModel viewModel) { ShowWindowInternal(viewModel, true); }
public void Show(IChildViewModel viewModel) { ShowWindowInternal(viewModel, false); }
public MessageViewModel ShowMessage(IChildViewModel parent, string message, string title, IEnumerable<string> buttons = null) { return ShowMessage(parent, message, title, buttons?.ToArray()); }
public Task<bool?> ShowDialog(IChildViewModel viewModel) { return ShowWindowInternal(viewModel, true); }
public Task Show(IChildViewModel viewModel) { return ShowWindowInternal(viewModel, false); }
public Task Show(IChildViewModel viewModel) { return(ShowWindowInternal(viewModel, false)); }
private static string GetName(IChildViewModel viewModel) { return(viewModel.GetName().Replace('.', '$')); }
private static string GetPath(IChildViewModel viewModel) { return(viewModel.GetParent() != null?GetPath(viewModel.GetParent()) + "." + GetName(viewModel) : GetName(viewModel)); }