summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Tizen/Renderers/ButtonRenderer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.Tizen/Renderers/ButtonRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.Tizen/Renderers/ButtonRenderer.cs53
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