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));
 }
Ejemplo n.º 12
0
 private static string GetName(IChildViewModel viewModel)
 {
     return(viewModel.GetName().Replace('.', '$'));
 }
Ejemplo n.º 13
0
 private static string GetPath(IChildViewModel viewModel)
 {
     return(viewModel.GetParent() != null?GetPath(viewModel.GetParent()) + "." + GetName(viewModel) : GetName(viewModel));
 }