Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit e2c0d37

Browse files
authored
Fix initial state (#11953) Issues Resolved fixes #11946
1 parent 6d23992 commit e2c0d37

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue8836.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ protected override void Init()
1212
var stack = new StackLayout();
1313

1414
stack.Children.Add(new Label {Text = "Click the button to toggle the clear button visibility."});
15+
stack.Children.Add(new Label { Text = "The default state when this page loaded is NEVER. The clear button should not be visible until you click toggle." });
1516

1617
Entry = new Entry
1718
{
18-
Text = "Clear Button: While Editing",
19-
ClearButtonVisibility = ClearButtonVisibility.WhileEditing
19+
Text = "Clear Button: Never",
20+
ClearButtonVisibility = ClearButtonVisibility.Never
2021
};
2122
stack.Children.Add(Entry);
2223

Xamarin.Forms.Platform.UAP/FormsTextBox.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ protected override void OnApplyTemplate()
163163
_DeleteButtonVisibleStateGroups = stateGroups.SingleOrDefault(sg => sg.Name == "ButtonStates");
164164
if (_DeleteButtonVisibleStateGroups != null)
165165
_DeleteButtonVisibleState = _DeleteButtonVisibleStateGroups.States.SingleOrDefault(s => s.Name == "ButtonVisible");
166+
UpdateClearButtonVisible();
166167
}
167168

168169
_scrollViewer= GetTemplateChild("ContentElement") as ScrollViewer;
@@ -387,21 +388,26 @@ void SyncBaseText()
387388
SelectionStart = base.Text.Length;
388389
}
389390

390-
static void ClearButtonVisibleChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
391+
void UpdateClearButtonVisible()
391392
{
392-
var textBox = (FormsTextBox)dependencyObject;
393-
var visibleState = textBox._DeleteButtonVisibleState;
394-
var states = textBox._DeleteButtonVisibleStateGroups?.States;
393+
var visibleState = _DeleteButtonVisibleState;
394+
var states = _DeleteButtonVisibleStateGroups?.States;
395395

396396
if (states != null && visibleState != null)
397397
{
398-
if (textBox.ClearButtonVisible && !states.Contains(visibleState))
398+
if (ClearButtonVisible && !states.Contains(visibleState))
399399
states.Add(visibleState);
400400
else
401401
states.Remove(visibleState);
402402
}
403403
}
404404

405+
static void ClearButtonVisibleChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
406+
{
407+
var textBox = (FormsTextBox)dependencyObject;
408+
textBox.UpdateClearButtonVisible();
409+
}
410+
405411
static void TextPropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
406412
{
407413
var textBox = (FormsTextBox)dependencyObject;

0 commit comments

Comments
 (0)