summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Tizen/Renderers/SearchBarRenderer.cs
diff options
context:
space:
mode:
authorSeungkeun Lee <sngn.lee@samsung.com>2017-06-29 13:07:21 +0900
committerKangho Hur <kangho.hur@samsung.com>2017-07-10 11:11:28 +0900
commitd225cdbe5a7879ad5fd8b9ab553ac3918928a70f (patch)
tree2558a9dcd91f8bdf839bcdbe7832dc8c43e1c8ce /Xamarin.Forms.Platform.Tizen/Renderers/SearchBarRenderer.cs
parent92c44dc97f1d467e123ce076e3ffed953fe7cddb (diff)
downloadxamarin-forms-d225cdbe5a7879ad5fd8b9ab553ac3918928a70f.tar.gz
xamarin-forms-d225cdbe5a7879ad5fd8b9ab553ac3918928a70f.tar.bz2
xamarin-forms-d225cdbe5a7879ad5fd8b9ab553ac3918928a70f.zip
Refactoring Renderers
- Apply Dispose pattern - Handle IBatchable interface on VisualElementRenderer - Make pair Event subscribe/unsubscribe Change-Id: I65018652132494722d52b1d62798f1cf1f6fc6fd
Diffstat (limited to 'Xamarin.Forms.Platform.Tizen/Renderers/SearchBarRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.Tizen/Renderers/SearchBarRenderer.cs45
1 files changed, 21 insertions, 24 deletions
diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/SearchBarRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/SearchBarRenderer.cs
index 30a2546c..3e3344ff 100644
--- a/Xamarin.Forms.Platform.Tizen/Renderers/SearchBarRenderer.cs
+++ b/Xamarin.Forms.Platform.Tizen/Renderers/SearchBarRenderer.cs
@@ -30,6 +30,20 @@ namespace Xamarin.Forms.Platform.Tizen
RegisterPropertyHandler(SearchBar.TextColorProperty, TextColorPropertyHandler);
}
+
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing)
+ {
+ if (Control != null)
+ {
+ Control.TextChanged -= OnTextChanged;
+ Control.SearchButtonPressed -= OnButtonPressed;
+ }
+ }
+ base.Dispose(disposing);
+ }
+
/// <summary>
/// A method called whenever the associated element has changed.
/// </summary>
@@ -37,25 +51,13 @@ namespace Xamarin.Forms.Platform.Tizen
{
if (Control == null)
{
- var searchBar = new Native.SearchBar(Forms.Context.MainWindow);
- SetNativeControl(searchBar);
- }
-
- if (e.OldElement != null)
- {
- Control.TextChanged -= SearchBarTextChangedHandler;
- Control.SearchButtonPressed -= SearchButtonPressedHandler;
+ SetNativeControl(new Native.SearchBar(Forms.Context.MainWindow));
+ Control.TextChanged += OnTextChanged;
+ Control.SearchButtonPressed += OnButtonPressed;
}
-
- if (e.NewElement != null)
- {
- Control.TextChanged += SearchBarTextChangedHandler;
- Control.SearchButtonPressed += SearchButtonPressedHandler;
-
- Control.BatchBegin();
- }
-
+ Control.BatchBegin();
base.OnElementChanged(e);
+ Control.BatchCommit();
}
protected override Size MinimumSize()
@@ -63,11 +65,6 @@ namespace Xamarin.Forms.Platform.Tizen
return new Size(136, 65);
}
- protected override void OnElementReady()
- {
- Control?.BatchCommit();
- }
-
/// <summary>
/// Called upon changing of Xamarin widget's cancel button color property.
/// Converts current Color to ElmSharp.Color instance and sets it in the underlying Xamarin.Forms.Platform.Tizen.Native widget.
@@ -138,7 +135,7 @@ namespace Xamarin.Forms.Platform.Tizen
/// Rewrites current underlying Xamarin.Forms.Platform.Tizen.Native.SearchBar's Text contents to its Xamarin counterpart.
/// </summary>
/// <param name="sender">Sender.</param>
- void SearchBarTextChangedHandler(object sender, EventArgs e)
+ void OnTextChanged(object sender, EventArgs e)
{
Element.Text = Control.Text;
}
@@ -148,7 +145,7 @@ namespace Xamarin.Forms.Platform.Tizen
/// </summary>
/// <param name="sender">Sender.</param>
/// <param name="e">Event arguments.</param>
- void SearchButtonPressedHandler(object sender, EventArgs e)
+ void OnButtonPressed(object sender, EventArgs e)
{
(Element as ISearchBarController).OnSearchButtonPressed();
}