internal TabHostItemsSourceGenerator([NotNull] TabHost tabHost)
 {
     Should.NotBeNull(tabHost, "tabHost");
     TabHost = tabHost;
     TabHost.Setup();
     _tabToContent         = new Dictionary <string, TabInfo>();
     _tabFactory           = new TabFactory(this);
     _itemTemplateProvider = new DataTemplateProvider(tabHost, AttachedMemberConstants.ItemTemplate,
                                                      AttachedMemberConstants.ItemTemplateSelector);
     _contentTemplateProvider = new DataTemplateProvider(tabHost, AttachedMemberConstants.ContentTemplate,
                                                         AttachedMemberConstants.ContentTemplateSelector);
     _selectedItemMember = BindingServiceProvider
                           .MemberProvider
                           .GetBindingMember(tabHost.GetType(), AttachedMemberConstants.SelectedItem, false, false);
     _collectionViewManagerMember = BindingServiceProvider
                                    .MemberProvider
                                    .GetBindingMember(tabHost.GetType(), AttachedMembers.ViewGroup.CollectionViewManager, false, false);
     TryListenActivity(tabHost.Context);
     TabHost.TabChanged += TabHostOnTabChanged;
 }