summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue1685.cs
diff options
context:
space:
mode:
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.cs77
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;
+
+ }
+ }
+}