private static void UpdateIsShowing(TextBox textBox)
        {
            if (textBox == null)
            {
                return;
            }

            if (!textBox.IsVisible || !textBox.IsLoaded || string.IsNullOrEmpty(GetText(textBox)))
            {
                textBox.SetIsShowing(false);
            }
            else
            {
                switch (textBox.GetVisibleWhen())
                {
                    case WatermarkVisibleWhen.Empty:
                        textBox.SetIsShowing(string.IsNullOrEmpty(textBox.Text));
                        break;
                    case WatermarkVisibleWhen.EmptyAndNotKeyboardFocused:
                        textBox.SetIsShowing(string.IsNullOrEmpty(textBox.Text) && !textBox.IsKeyboardFocused);
                        break;
                    default:
                        throw new ArgumentOutOfRangeException();
                }
            }
        }