diff options
author | chungryeol lim <cdark.lim@samsung.com> | 2017-01-19 11:47:27 +0900 |
---|---|---|
committer | chungryeol lim <cdark.lim@samsung.com> | 2017-01-19 12:44:58 +0900 |
commit | 28bce7b3acadf8eb4ee8decc583afd91a4a9897c (patch) | |
tree | 374ab5e490f8b4efdc77803bf2653cb9ab3ff7fd | |
parent | 6fd9395a427df9520ff2dacfa089dba8db375153 (diff) | |
download | xamarin-forms-28bce7b3acadf8eb4ee8decc583afd91a4a9897c.tar.gz xamarin-forms-28bce7b3acadf8eb4ee8decc583afd91a4a9897c.tar.bz2 xamarin-forms-28bce7b3acadf8eb4ee8decc583afd91a4a9897c.zip |
Fixed ListView.SelectedItem Issue
- Fixed using SelectedItem property in ItemSelected Callback
Change-Id: I4bdf0c285388c80412b35902077b2940c362e64c
Signed-off-by: chungryeol lim <cdark.lim@samsung.com>
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/Renderers/ListViewRenderer.cs | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/ListViewRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/ListViewRenderer.cs index 5179d7e0..95a1d120 100644 --- a/Xamarin.Forms.Platform.Tizen/Renderers/ListViewRenderer.cs +++ b/Xamarin.Forms.Platform.Tizen/Renderers/ListViewRenderer.cs @@ -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; } } } |