public void Apply(IMenu menu, Context context, object parent) { AndroidToolkitExtensions.ValidateTemplate(ItemsSource, Items); var setter = new XmlPropertySetter(menu, context); menu.SetBindingMemberValue(AttachedMembers.Object.Parent, parent); setter.SetBinding(nameof(DataContext), DataContext, false); setter.SetBoolProperty(nameof(IsVisible), IsVisible); setter.SetBoolProperty(nameof(IsEnabled), IsEnabled); if (!string.IsNullOrEmpty(Bind)) { setter.Bind(menu, Bind); } if (string.IsNullOrEmpty(ItemsSource)) { if (Items != null) { for (int index = 0; index < Items.Count; index++) { Items[index].Apply(menu, context, index, index); } } } else { menu.SetBindingMemberValue(AttachedMembers.Menu.ItemsSourceGenerator, new MenuItemsSourceGenerator(menu, context, ItemTemplate)); setter.SetBinding(nameof(ItemsSource), ItemsSource, true); } setter.Apply(); }
private void ApplySelf(IMenuItem menuItem, XmlPropertySetter setter) { if (!string.IsNullOrEmpty(Bind)) { setter.Bind(menuItem, Bind); } setter.SetStringProperty(nameof(AlphabeticShortcut), AlphabeticShortcut); setter.SetStringProperty(nameof(NumericShortcut), NumericShortcut); setter.SetProperty(nameof(Icon), Icon); setter.SetBoolProperty(nameof(IsCheckable), IsCheckable); setter.SetBoolProperty(nameof(IsChecked), IsChecked); setter.SetBoolProperty(nameof(IsEnabled), IsEnabled); setter.SetBoolProperty(nameof(IsVisible), IsVisible); setter.SetBoolProperty(nameof(IsActionViewExpanded), IsActionViewExpanded); setter.SetStringProperty(nameof(Title), Title); setter.SetStringProperty(nameof(TitleCondensed), TitleCondensed); setter.SetStringProperty(nameof(CommandParameter), CommandParameter); setter.SetBinding(nameof(Click), Click, false); AndroidToolkitExtensions.MenuItemTemplateInitalized?.Invoke(this, menuItem, setter); setter.SetProperty(nameof(ActionViewTemplateSelector), ActionViewTemplateSelector); setter.SetProperty(nameof(ActionProviderTemplateSelector), ActionProviderTemplateSelector); setter.SetProperty(nameof(ActionView), ActionView); setter.SetStringProperty(nameof(ActionProvider), ActionProvider); }
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); }
public void Apply(Activity activity) { AndroidToolkitExtensions.ValidateTemplate(ItemsSource, Items); var actionBar = activity.GetActionBar(); var setter = new XmlPropertySetter(actionBar, activity); setter.SetEnumProperty <ActionBarNavigationMode>(nameof(NavigationMode), NavigationMode); setter.SetProperty(nameof(DataContext), DataContext); if (!string.IsNullOrEmpty(Bind)) { setter.Bind(actionBar, Bind); } setter.SetProperty(nameof(ContextActionBarTemplate), ContextActionBarTemplate); setter.SetBinding(nameof(ContextActionBarVisible), ContextActionBarVisible, false); setter.SetProperty(nameof(BackgroundDrawable), BackgroundDrawable); setter.SetProperty(nameof(CustomView), CustomView); setter.SetEnumProperty <ActionBarDisplayOptions>(nameof(DisplayOptions), DisplayOptions); setter.SetBoolProperty(nameof(DisplayHomeAsUpEnabled), DisplayHomeAsUpEnabled); setter.SetBoolProperty(nameof(DisplayShowCustomEnabled), DisplayShowCustomEnabled); setter.SetBoolProperty(nameof(DisplayShowHomeEnabled), DisplayShowHomeEnabled); setter.SetBoolProperty(nameof(DisplayShowTitleEnabled), DisplayShowTitleEnabled); setter.SetBoolProperty(nameof(DisplayUseLogoEnabled), DisplayUseLogoEnabled); setter.SetBoolProperty(nameof(HomeButtonEnabled), HomeButtonEnabled); setter.SetProperty(nameof(Icon), Icon); setter.SetProperty(nameof(Logo), Logo); setter.SetProperty(nameof(SplitBackgroundDrawable), SplitBackgroundDrawable); setter.SetProperty(nameof(StackedBackgroundDrawable), StackedBackgroundDrawable); setter.SetBoolProperty(nameof(IsShowing), IsShowing); setter.SetStringProperty(nameof(Subtitle), Subtitle); setter.SetStringProperty(nameof(Title), Title); setter.SetBoolProperty(nameof(Visible), Visible); setter.SetBinding(AttachedMembers.ActionBar.HomeButtonClick, HomeButtonClick, false); if (string.IsNullOrEmpty(ItemsSource)) { if (Items != null) { ActionBar.Tab firstTab = null; for (int index = 0; index < Items.Count; index++) { var tab = Items[index].CreateTab(actionBar); if (firstTab == null) { firstTab = tab; } actionBar.AddTab(tab); } TryRestoreSelectedIndex(activity, actionBar); } } else { #if APPCOMPAT actionBar.SetBindingMemberValue(AttachedMembersCompat.ActionBar.ItemsSourceGenerator, new ActionBarTabItemsSourceGenerator(actionBar, TabTemplate)); #else actionBar.SetBindingMemberValue(AttachedMembers.ActionBar.ItemsSourceGenerator, new ActionBarTabItemsSourceGenerator(actionBar, TabTemplate)); #endif setter.SetBinding(nameof(ItemsSource), ItemsSource, false); } setter.SetBinding(nameof(SelectedItem), SelectedItem, false); setter.Apply(); }