public UserDialog(UserViewModel user)
        {
            InitializeComponent();
            user.WindowCloseRequest += () => this.Close();
            this.DataContext = user;
            this.Closing += (sender, args) => user.OnClosing(args);

            Binding passwordBinding = new Binding(Password.Name);
            passwordBinding.Source = user;
            passwordBinding.ValidatesOnDataErrors = true;
            passwordBinding.Mode = BindingMode.TwoWay;
            // you can configure other binding stuff here
            PasswordBox.SetBinding(Password, passwordBinding);
            PasswordBox.Password = user.Password;
        }
        public void ShowEditUserDialog(UserViewModel userViewModel)
        {
            Window window = FindFromCollection(userViewModel.Model.Id);

            if (window == null)
            {
                window = new UserDialog(new UserViewModel(_userService.CreateCopy(userViewModel.Model)));
                AddToCollection(userViewModel.Model.Id, window);
            }
            window.Closed += (sender, args) => DialogCollection.Remove(((UserViewModel)((MetroWindow)sender).DataContext).Model.Id);
            ActivateWindow(window);
        }