private ActionBar.Tab CreateTabInternal(ActionBar bar, object context, bool useContext)
        {
            ActionBar.Tab newTab = bar.NewTab();
            BindingExtensions.AttachedParentMember.SetValue(newTab, bar);

            var setter = new XmlPropertySetter <ActionBarTabTemplate, ActionBar.Tab>(newTab, bar.ThemedContext, new BindingSet());

            if (useContext)
            {
                BindingServiceProvider.ContextManager.GetBindingContext(newTab).Value = context;
            }
            else
            {
                setter.SetProperty(template => template.DataContext, DataContext);
            }
            setter.SetBinding(template => template.ContentTemplateSelector, ContentTemplateSelector, false);
            setter.SetProperty(template => template.ContentTemplate, ContentTemplate);
            setter.SetProperty(template => template.Content, Content);
            setter.SetStringProperty(template => template.ContentDescription, ContentDescription);
            setter.SetProperty(template => template.CustomView, CustomView);
            setter.SetProperty(template => template.Icon, Icon);
            setter.SetProperty(template => template.Text, Text);
            setter.SetProperty(template => template.Tag, Tag);
            setter.Apply();

            var tabListener = new TabListener(new DataTemplateProvider(bar, AttachedMemberConstants.ContentTemplate,
                                                                       AttachedMemberConstants.ContentTemplateSelector));

            ServiceProvider.AttachedValueProvider.SetValue(newTab, ListenerKey, tabListener);
            newTab.SetTabListener(tabListener);
            return(newTab);
        }
        private ActionBar.Tab CreateTabInternal(ActionBar bar, object context, bool useContext)
        {
            var newTab = bar.NewTab();

            newTab.SetBindingMemberValue(AttachedMembers.Object.Parent, bar);

            var setter = new XmlPropertySetter <ActionBarTabTemplate, ActionBar.Tab>(newTab, bar.ThemedContext, new BindingSet());

            if (useContext)
            {
                newTab.SetDataContext(context);
            }
            else
            {
                setter.SetProperty(() => template => template.DataContext, DataContext);
            }
            if (!string.IsNullOrEmpty(Bind))
            {
                setter.BindingSet.BindFromExpression(newTab, Bind);
            }
            setter.SetBinding(() => template => template.ContentTemplateSelector, ContentTemplateSelector, false);
            setter.SetProperty(() => template => template.ContentTemplate, ContentTemplate);
            setter.SetProperty(() => template => template.Content, Content);
            setter.SetStringProperty(() => template => template.ContentDescription, ContentDescription);
            setter.SetProperty(() => template => template.CustomView, CustomView);
            setter.SetProperty(() => template => template.Icon, Icon);
            setter.SetProperty(() => template => template.Text, Text);
            setter.SetProperty(() => template => template.Tag, Tag);
            setter.Apply();

            var tabListener = new TabListener(new DataTemplateProvider(bar, AttachedMemberConstants.ContentTemplate,
                                                                       AttachedMemberConstants.ContentTemplateSelector));

            ServiceProvider.AttachedValueProvider.SetValue(newTab, ListenerKey, tabListener);
            newTab.SetTabListener(tabListener);
            return(newTab);
        }
        private ActionBar.Tab CreateTabInternal(ActionBar bar, object context, bool useContext)
        {
            var newTab = bar.NewTab();

            newTab.SetBindingMemberValue(AttachedMembers.Object.Parent, bar);

            var setter = new XmlPropertySetter(newTab, bar.ThemedContext);

            if (useContext)
            {
                newTab.SetDataContext(context);
            }
            else
            {
                setter.SetProperty(nameof(DataContext), DataContext);
            }
            if (!string.IsNullOrEmpty(Bind))
            {
                setter.Bind(newTab, Bind);
            }
            setter.SetBinding(nameof(ContentTemplateSelector), ContentTemplateSelector, false);
            setter.SetProperty(nameof(ContentTemplate), ContentTemplate);
            setter.SetProperty(nameof(Content), Content);
            setter.SetStringProperty(nameof(ContentDescription), ContentDescription);
            setter.SetProperty(nameof(CustomView), CustomView);
            setter.SetProperty(nameof(Icon), Icon);
            setter.SetProperty(nameof(Text), Text);
            setter.SetProperty(nameof(Tag), Tag);
            setter.Apply();

            var tabListener = new TabListener(new DataTemplateProvider(bar, AttachedMemberConstants.ContentTemplate,
                                                                       AttachedMemberConstants.ContentTemplateSelector));

            ServiceProvider.AttachedValueProvider.SetValue(newTab, ListenerKey, tabListener);
            newTab.SetTabListener(tabListener);
            return(newTab);
        }
        private ActionBar.Tab CreateTabInternal(ActionBar bar, object context, bool useContext)
        {
            var newTab = bar.NewTab();
            newTab.SetBindingMemberValue(AttachedMembers.Object.Parent, bar);

            var setter = new XmlPropertySetter<ActionBarTabTemplate, ActionBar.Tab>(newTab, bar.ThemedContext, new BindingSet());
            if (useContext)
                newTab.SetDataContext(context);
            else
                setter.SetProperty(() => template => template.DataContext, DataContext);
            if (!string.IsNullOrEmpty(Bind))
                setter.BindingSet.BindFromExpression(newTab, Bind);
            setter.SetBinding(() => template => template.ContentTemplateSelector, ContentTemplateSelector, false);
            setter.SetProperty(() => template => template.ContentTemplate, ContentTemplate);
            setter.SetProperty(() => template => template.Content, Content);
            setter.SetStringProperty(() => template => template.ContentDescription, ContentDescription);
            setter.SetProperty(() => template => template.CustomView, CustomView);
            setter.SetProperty(() => template => template.Icon, Icon);
            setter.SetProperty(() => template => template.Text, Text);
            setter.SetProperty(() => template => template.Tag, Tag);
            setter.Apply();

            var tabListener = new TabListener(new DataTemplateProvider(bar, AttachedMemberConstants.ContentTemplate,
                AttachedMemberConstants.ContentTemplateSelector));
            ServiceProvider.AttachedValueProvider.SetValue(newTab, ListenerKey, tabListener);
            newTab.SetTabListener(tabListener);
            return newTab;
        }