Fixed ListView.SelectedItem Issue
authorchungryeol lim <cdark.lim@samsung.com>
Thu, 19 Jan 2017 02:47:27 +0000 (11:47 +0900)
committerKangho Hur <kangho.hur@samsung.com>
Mon, 10 Jul 2017 02:11:17 +0000 (11:11 +0900)
  - Fixed using SelectedItem property in ItemSelected Callback

Change-Id: I4bdf0c285388c80412b35902077b2940c362e64c
Signed-off-by: chungryeol lim <cdark.lim@samsung.com>
Xamarin.Forms.Platform.Tizen/Renderers/ListViewRenderer.cs

index 5179d7e..95a1d12 100644 (file)
@@ -259,7 +259,7 @@ namespace Xamarin.Forms.Platform.Tizen
                                if (e.Action == NotifyCollectionChangedAction.Add)
                                {
                                        Cell before = null;
-                                       if(e.NewStartingIndex + e.NewItems.Count < Element.TemplatedItems.Count)
+                                       if (e.NewStartingIndex + e.NewItems.Count < Element.TemplatedItems.Count)
                                        {
                                                before = Element.TemplatedItems[e.NewStartingIndex + e.NewItems.Count];
                                        }
@@ -289,7 +289,7 @@ namespace Xamarin.Forms.Platform.Tizen
                        {
                                if (e.Action == NotifyCollectionChangedAction.Add)
                                {
-                                       TemplatedItemsList<ItemsView<Cell>,Cell> itemsGroup = sender as TemplatedItemsList<ItemsView<Cell>,Cell>;
+                                       TemplatedItemsList<ItemsView<Cell>, Cell> itemsGroup = sender as TemplatedItemsList<ItemsView<Cell>, Cell>;
                                        Cell before = null;
                                        if (e.NewStartingIndex + e.NewItems.Count < itemsGroup.Count)
                                        {
@@ -407,29 +407,26 @@ namespace Xamarin.Forms.Platform.Tizen
                /// </summary>
                void UpdateSelectedItem()
                {
-                       if (_selectedItemChanging == 0)
+                       if (Element.SelectedItem == null)
                        {
-                               if (Element.SelectedItem == null)
+                               if (_lastSelectedItem != null)
                                {
-                                       if (_lastSelectedItem != null)
-                                       {
-                                               _lastSelectedItem.IsSelected = false;
-                                               _lastSelectedItem = null;
-                                       }
+                                       _lastSelectedItem.IsSelected = false;
+                                       _lastSelectedItem = null;
                                }
-                               else
+                       }
+                       else
+                       {
+                               var templatedItems = Element.TemplatedItems;
+                               var results = templatedItems.GetGroupAndIndexOfItem(Element.SelectedItem);
+                               if (results.Item1 != -1 && results.Item2 != -1)
                                {
-                                       var templatedItems = Element.TemplatedItems;
-                                       var results = templatedItems.GetGroupAndIndexOfItem(Element.SelectedItem);
-                                       if (results.Item1 != -1 && results.Item2 != -1)
-                                       {
-                                               var itemGroup = templatedItems.GetGroup(results.Item1);
-                                               var cell = itemGroup[results.Item2];
+                                       var itemGroup = templatedItems.GetGroup(results.Item1);
+                                       var cell = itemGroup[results.Item2];
 
-                                               ++_selectedItemChanging;
-                                               Control.ApplySelectedItem(cell);
-                                               --_selectedItemChanging;
-                                       }
+                                       ++_selectedItemChanging;
+                                       Control.ApplySelectedItem(cell);
+                                       --_selectedItemChanging;
                                }
                        }
                }