diff options
author | Seungkeun Lee <sngn.lee@samsung.com> | 2017-06-29 13:07:21 +0900 |
---|---|---|
committer | Kangho Hur <kangho.hur@samsung.com> | 2017-07-10 11:11:28 +0900 |
commit | d225cdbe5a7879ad5fd8b9ab553ac3918928a70f (patch) | |
tree | 2558a9dcd91f8bdf839bcdbe7832dc8c43e1c8ce /Xamarin.Forms.Platform.Tizen/Renderers/SearchBarRenderer.cs | |
parent | 92c44dc97f1d467e123ce076e3ffed953fe7cddb (diff) | |
download | xamarin-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.cs | 45 |
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(); } |