예제 #1
0
        private void SetIndicator(TabHost.TabSpec tabSpec, object item)
        {
            var viewModel = item as IViewModel;

#if !API8
            if (viewModel != null)
            {
                viewModel.Settings.Metadata.AddOrUpdate(ViewModelConstants.StateNotNeeded, true);
            }
#endif

            var templateId = _itemTemplateProvider.GetTemplateId();
            var selector   = _itemTemplateProvider.GetDataTemplateSelector();
            if (templateId == null && selector == null)
            {
                selector = EmptyTemplateSelector.Instance;
            }
            object content = PlatformExtensions.GetContentView(_tabHost, _tabHost.Context, item, templateId, selector);
            if (content == EmptyTemplateSelector.EmptyView)
            {
                content = null;
                if (viewModel is IHasDisplayName)
                {
                    BindingServiceProvider.BindingProvider.CreateBindingsFromString(tabSpec, "Title DisplayName", null);
                }
                else
                {
                    tabSpec.SetIndicator(item.ToStringSafe("(null)"));
                }
            }
            var view = content as View;
            if (view == null)
            {
                tabSpec.SetIndicator(content.ToStringSafe("(null)"));
            }
            else
            {
                tabSpec.SetIndicator(view);
            }
        }
예제 #2
0
 private object GetContent(object item)
 {
     return(PlatformExtensions.GetContentView(_tabHost, _tabHost.Context,
                                              item, _contentTemplateProvider.GetTemplateId(), _contentTemplateProvider.GetDataTemplateSelector()));
 }