diff options
Diffstat (limited to 'Xamarin.Forms.Platform.Tizen/Renderers/ButtonRenderer.cs')
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/Renderers/ButtonRenderer.cs | 53 |
1 files changed, 22 insertions, 31 deletions
diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/ButtonRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/ButtonRenderer.cs index 483fcebc..0125cfea 100644 --- a/Xamarin.Forms.Platform.Tizen/Renderers/ButtonRenderer.cs +++ b/Xamarin.Forms.Platform.Tizen/Renderers/ButtonRenderer.cs @@ -23,23 +23,11 @@ namespace Xamarin.Forms.Platform.Tizen { if (Control == null) { - var button = new Native.Button(Forms.Context.MainWindow) + SetNativeControl(new Native.Button(Forms.Context.MainWindow) { PropagateEvents = false, - }; - SetNativeControl(button); - } - - if (e.OldElement != null) - { - Control.Clicked -= ButtonClickedHandler; - } - - if (e.NewElement != null) - { - Control.Clicked += ButtonClickedHandler; - - Control.BatchBegin(); + }); + Control.Clicked += OnButtonClicked; } base.OnElementChanged(e); } @@ -49,18 +37,31 @@ namespace Xamarin.Forms.Platform.Tizen return Control.Measure(Control.MinimumWidth, Control.MinimumHeight).ToDP(); } - protected override void OnElementReady() + protected override void UpdateThemeStyle() { - Control?.BatchCommit(); + var style = Specific.GetStyle(Element); + if (!string.IsNullOrEmpty(style)) + { + Control.UpdateStyle(style); + ((IVisualElementController)Element).NativeSizeChanged(); + } } - void ButtonClickedHandler(object sender, EventArgs e) + protected override void Dispose(bool disposing) { - IButtonController btn = Element as IButtonController; - if (btn != null) + if (disposing) { - btn.SendClicked(); + if (Control != null) + { + Control.Clicked -= OnButtonClicked; + } } + base.Dispose(disposing); + } + + void OnButtonClicked(object sender, EventArgs e) + { + (Element as IButtonController)?.SendClicked(); } void UpdateText() @@ -101,16 +102,6 @@ namespace Xamarin.Forms.Platform.Tizen } } - protected override void UpdateThemeStyle() - { - var style = Specific.GetStyle(Element); - if (!string.IsNullOrEmpty(style)) - { - Control.UpdateStyle(style); - ((IVisualElementController)Element).NativeSizeChanged(); - } - } - void UpdateBorder() { /* The simpler way is to create some specialized theme for button in |