diff options
Diffstat (limited to 'Xamarin.Forms.Platform.Tizen/Renderers/TableViewRenderer.cs')
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/Renderers/TableViewRenderer.cs | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/TableViewRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/TableViewRenderer.cs index c1a37916..58b17a4b 100644 --- a/Xamarin.Forms.Platform.Tizen/Renderers/TableViewRenderer.cs +++ b/Xamarin.Forms.Platform.Tizen/Renderers/TableViewRenderer.cs @@ -17,20 +17,18 @@ namespace Xamarin.Forms.Platform.Tizen { if (Control == null) { - var _tableView = new Native.TableView(Forms.Context.MainWindow); - SetNativeControl(_tableView); + SetNativeControl(new Native.TableView(Forms.Context.MainWindow)); + Control.ItemSelected += OnSelected; } if (e.OldElement != null) { - Control.ItemSelected -= ListViewItemSelectedHandler; e.OldElement.ModelChanged -= OnRootPropertyChanged; } if (e.NewElement != null) { e.NewElement.ModelChanged += OnRootPropertyChanged; - Control.ItemSelected += ListViewItemSelectedHandler; Control.ApplyTableRoot(e.NewElement.Root); } @@ -39,11 +37,23 @@ namespace Xamarin.Forms.Platform.Tizen protected override void Dispose(bool disposing) { - Element.ModelChanged -= OnRootPropertyChanged; + if (disposing) + { + if (Element != null) + { + Element.ModelChanged -= OnRootPropertyChanged; + } + + if (Control != null) + { + Control.ItemSelected -= OnSelected; + } + } + base.Dispose(disposing); } - void ListViewItemSelectedHandler(object sender, GenListItemEventArgs e) + void OnSelected(object sender, GenListItemEventArgs e) { var item = e.Item as GenListItem; |