2 using System.Collections.Generic;
4 namespace Tizen.NUI.Binding
6 internal abstract class DataTemplateSelector : DataTemplate
8 Dictionary<Type, DataTemplate> _dataTemplates = new Dictionary<Type, DataTemplate>();
10 public DataTemplate SelectTemplate(object item, BindableObject container)
12 // var listView = container as ListView;
14 // var recycle = listView == null ? false :
15 // (listView.CachingStrategy & ListViewCachingStrategy.RecycleElementAndDataTemplate) ==
16 // ListViewCachingStrategy.RecycleElementAndDataTemplate;
18 DataTemplate dataTemplate = null;
19 // if (recycle && _dataTemplates.TryGetValue(item.GetType(), out dataTemplate))
20 // return dataTemplate;
22 dataTemplate = OnSelectTemplate(item, container);
23 if (dataTemplate is DataTemplateSelector)
24 throw new NotSupportedException(
25 "DataTemplateSelector.OnSelectTemplate must not return another DataTemplateSelector");
29 // if (!dataTemplate.CanRecycle)
30 // throw new NotSupportedException(
31 // "RecycleElementAndDataTemplate requires DataTemplate activated with ctor taking a type.");
33 // _dataTemplates[item.GetType()] = dataTemplate;
39 protected abstract DataTemplate OnSelectTemplate(object item, BindableObject container);