diff options
Diffstat (limited to 'Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1685.cs')
-rw-r--r-- | Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1685.cs | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1685.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1685.cs new file mode 100644 index 00000000..1f9cbcf2 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1685.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Xamarin.Forms.CustomAttributes; + +namespace Xamarin.Forms.Controls +{ + [Preserve (AllMembers=true)] + [Issue (IssueTracker.Github, 1685, "Entry clears when upadting text from native with one-way binding", PlatformAffected.Android | PlatformAffected.iOS | PlatformAffected.WinPhone, NavigationBehavior.PushModalAsync)] + public class Issue1685 : ContentPage + { + class Test : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + + decimal _entryValue = decimal.Zero; + public decimal EntryValue + { + get + { + return _entryValue; + } + set + { + _entryValue = value; + OnPropertyChanged("EntryValue"); + } + } + + void OnPropertyChanged(string caller) { + var handler = PropertyChanged; + if (handler != null) + { + handler(this, new PropertyChangedEventArgs(caller)); + } + } + } + + public Issue1685() + { + Title = "EntryBindingBug"; + + BindingContext = new Test(); + + var entry = new Entry() { + Placeholder = "Entry" + }; + entry.SetBinding(Entry.TextProperty, "EntryValue", BindingMode.OneWay); + + var button = new Button() { + Text = "Click me" + }; + + button.Clicked += (sender, e) => + { + var context = BindingContext as Test; + context.EntryValue = context.EntryValue + 1; + }; + + var root = new StackLayout() { + VerticalOptions = LayoutOptions.FillAndExpand, + HorizontalOptions = LayoutOptions.FillAndExpand, + Children = { + entry, + button + } + }; + + Content = root; + + } + } +} |