// HACK: need to group placeholder and password box to one item, or make them share same properties
        private void SetTag(PasswordBoxObjectType target, bool validValue)
        {
            PasswordBox passwordBox = null;
            TextBox     placeholder = null;

            switch (target)
            {
            case PasswordBoxObjectType.Master:
                passwordBox = _masterPasswordTextBox;
                placeholder = _masterPasswordPlaceHolder;
                break;

            case PasswordBoxObjectType.Confirm:
                passwordBox = _confirmPasswordTextBox;
                placeholder = _confirmPasswordPlaceHolder;
                break;

            default:
                throw new ArgumentException();
            }

            Dispatcher.BeginInvoke(DispatcherPriority.Input, new Action(delegate()
            {
                passwordBox.Tag = ConvertToPasswordBoxTagState(validValue);
                placeholder.Tag = ConvertToPasswordBoxTagState(validValue);
            }));
        }
        private void Clear(PasswordBoxObjectType target, bool clearPasswords)
        {
            PasswordBox passwordBox = null;
            TextBox     placeholder = null;

            switch (target)
            {
            case PasswordBoxObjectType.Master:
                passwordBox = _masterPasswordTextBox;
                placeholder = _masterPasswordPlaceHolder;
                if (clearPasswords)
                {
                    _vm.UserPasswordWrapper.Password = string.Empty;
                }
                break;

            case PasswordBoxObjectType.Confirm:
                passwordBox = _confirmPasswordTextBox;
                placeholder = _confirmPasswordPlaceHolder;
                if (clearPasswords)
                {
                    _vm.UserConfirmPasswordWrapper.Password = string.Empty;
                }
                break;

            default:
                throw new ArgumentException();
            }

            if (clearPasswords)
            {
                passwordBox.Password = string.Empty;
            }

            passwordBox.Tag = PasswordBoxTagState.Clear;
            placeholder.Tag = PasswordBoxTagState.Clear;
        }