Update header/footer in response to HeaderElement/FooterElement notifications 97/126597/2
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 24 Apr 2017 08:23:40 +0000 (10:23 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 24 Apr 2017 10:21:09 +0000 (12:21 +0200)
This approach allows to register only one handler per header/footer,
covers both Header/Footer and HeaderTemplate/FooterTemplate cases,
while handlers are called when elements are ready, so there's no
need for an awkward call to Device.StartTimer().

Change-Id: I16c2943e20d93efeab409e8999ce7e72105aa79a
Signed-off-by: Pawel Andruszkiewicz <p.andruszkie@samsung.com>
Xamarin.Forms.Platform.Tizen/Renderers/ListViewRenderer.cs

index d2b325a..fff2179 100644 (file)
@@ -59,12 +59,10 @@ namespace Xamarin.Forms.Platform.Tizen
                        RegisterPropertyHandler(ListView.IsGroupingEnabledProperty, UpdateIsGroupingEnabled);
                        RegisterPropertyHandler(ListView.HasUnevenRowsProperty, UpdateHasUnevenRows);
                        RegisterPropertyHandler(ListView.RowHeightProperty, UpdateRowHeight);
-                       RegisterPropertyHandler(ListView.HeaderProperty, UpdateHeader);
                        RegisterPropertyHandler(ListView.SelectedItemProperty, UpdateSelectedItem);
-                       RegisterPropertyHandler(ListView.FooterProperty, UpdateFooter);
                        RegisterPropertyHandler(ListView.ItemsSourceProperty, UpdateSource);
-                       RegisterPropertyHandler(ListView.FooterTemplateProperty, UpdateFooter);
-                       RegisterPropertyHandler(ListView.HeaderTemplateProperty, UpdateHeader);
+                       RegisterPropertyHandler("HeaderElement", UpdateHeader);
+                       RegisterPropertyHandler("FooterElement", UpdateFooter);
                }
 
                /// <summary>
@@ -327,24 +325,7 @@ namespace Xamarin.Forms.Platform.Tizen
                /// </summary>
                void UpdateHeader()
                {
-                       if (Element.Header == null)
-                       {
-                               Control.SetHeader(null);
-                               return;
-                       }
-
-                       if (((IListViewController)Element).HeaderElement == null)
-                       {
-                               Device.StartTimer(new TimeSpan(0), () =>
-                               {
-                                       Control.SetHeader(((IListViewController)Element).HeaderElement as VisualElement);
-                                       return false;
-                               });
-                       }
-                       else
-                       {
-                               Control.SetHeader(((IListViewController)Element).HeaderElement as VisualElement);
-                       }
+                       Control.SetHeader(((IListViewController)Element).HeaderElement as VisualElement);
                }
 
                /// <summary>
@@ -352,24 +333,7 @@ namespace Xamarin.Forms.Platform.Tizen
                /// </summary>
                void UpdateFooter()
                {
-                       if (Element.Footer == null)
-                       {
-                               Control.SetFooter(null);
-                               return;
-                       }
-
-                       if (((IListViewController)Element).FooterElement == null)
-                       {
-                               Device.StartTimer(new TimeSpan(0), () =>
-                               {
-                                       Control.SetFooter(((IListViewController)Element).FooterElement as VisualElement);
-                                       return false;
-                               });
-                       }
-                       else
-                       {
-                               Control.SetFooter(((IListViewController)Element).FooterElement as VisualElement);
-                       }
+                       Control.SetFooter(((IListViewController)Element).FooterElement as VisualElement);
                }
 
                /// <summary>