private void ApplySelf(IMenuItem menuItem, XmlPropertySetter <IMenuItem> setter) { if (!string.IsNullOrEmpty(Bind)) { setter.BindingSet.BindFromExpression(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); Initalized?.Invoke(this, menuItem, setter); setter.SetBinding(nameof(ActionViewTemplateSelector), ActionViewTemplateSelector, false); setter.SetBinding(nameof(ActionProviderTemplateSelector), ActionProviderTemplateSelector, false); setter.SetProperty(nameof(ActionView), ActionView); setter.SetStringProperty(nameof(ActionProvider), ActionProvider); }
public void Apply(IMenu menu, Context context, object parent) { PlatformExtensions.ValidateTemplate(ItemsSource, Items); var setter = new XmlPropertySetter <MenuTemplate, IMenu>(menu, context, new BindingSet()); BindingExtensions.AttachedParentMember.SetValue(menu, parent); setter.SetBinding(template => template.DataContext, DataContext, false); setter.SetBoolProperty(template => template.IsVisible, IsVisible); setter.SetBoolProperty(template => template.IsEnabled, IsEnabled); if (string.IsNullOrEmpty(ItemsSource)) { if (Items != null) { for (int index = 0; index < Items.Count; index++) { Items[index].Apply(menu, context, index, index); } } } else { MenuItemsSourceGenerator.Set(menu, context, ItemTemplate); setter.SetBinding(template => template.ItemsSource, ItemsSource, true); } setter.Apply(); }
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 void ApplySelf(IMenuItem menuItem, XmlPropertySetter <MenuItemTemplate, IMenuItem> setter) { if (!string.IsNullOrEmpty(Bind)) { setter.BindingSet.BindFromExpression(menuItem, Bind); } setter.SetStringProperty(() => template => template.AlphabeticShortcut, AlphabeticShortcut); setter.SetStringProperty(() => template => template.NumericShortcut, NumericShortcut); setter.SetProperty(() => template => template.Icon, Icon); setter.SetBoolProperty(() => template => template.IsCheckable, IsCheckable); setter.SetBoolProperty(() => template => template.IsChecked, IsChecked); setter.SetBoolProperty(() => template => template.IsEnabled, IsEnabled); setter.SetBoolProperty(() => template => template.IsVisible, IsVisible); setter.SetBoolProperty(() => template => template.IsActionViewExpanded, IsActionViewExpanded); setter.SetStringProperty(() => template => template.Title, Title); setter.SetStringProperty(() => template => template.TitleCondensed, TitleCondensed); setter.SetStringProperty(() => template => template.CommandParameter, CommandParameter); setter.SetBinding(() => template => template.Click, Click, false); var initalized = Initalized; if (initalized != null) { initalized(this, menuItem, setter); } setter.SetBinding(() => template => template.ActionViewTemplateSelector, ActionViewTemplateSelector, false); setter.SetBinding(() => template => template.ActionProviderTemplateSelector, ActionProviderTemplateSelector, false); setter.SetProperty(() => template => template.ActionView, ActionView); setter.SetStringProperty(() => template => template.ActionProvider, ActionProvider); }
public void Apply(IMenu menu, Context context, object parent) { PlatformExtensions.ValidateTemplate(ItemsSource, Items); var setter = new XmlPropertySetter <IMenu>(menu, context, new BindingSet()); 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.BindingSet.BindFromExpression(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(); }
public void Apply(IMenu menu, Context context, object parent) { PlatformExtensions.ValidateTemplate(ItemsSource, Items); var setter = new XmlPropertySetter<IMenu>(menu, context, new BindingSet()); 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.BindingSet.BindFromExpression(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(); }
public void Apply(Activity activity) { PlatformExtensions.ValidateTemplate(ItemsSource, Tabs); var actionBar = activity.GetActionBar(); var setter = new XmlPropertySetter <ActionBarTemplate, ActionBar>(actionBar, activity, new BindingSet()); setter.SetEnumProperty <ActionBarNavigationMode>(template => template.NavigationMode, NavigationMode); setter.SetProperty(template => template.DataContext, DataContext); setter.SetProperty(template => template.ContextActionBarTemplate, ContextActionBarTemplate); setter.SetBinding(template => template.ContextActionBarVisible, ContextActionBarVisible, false); setter.SetProperty(template => template.BackgroundDrawable, BackgroundDrawable); setter.SetProperty(template => template.CustomView, CustomView); setter.SetEnumProperty <ActionBarDisplayOptions>(template => template.DisplayOptions, DisplayOptions); setter.SetBoolProperty(template => template.DisplayHomeAsUpEnabled, DisplayHomeAsUpEnabled); setter.SetBoolProperty(template => template.DisplayShowCustomEnabled, DisplayShowCustomEnabled); setter.SetBoolProperty(template => template.DisplayShowHomeEnabled, DisplayShowHomeEnabled); setter.SetBoolProperty(template => template.DisplayShowTitleEnabled, DisplayShowTitleEnabled); setter.SetBoolProperty(template => template.DisplayUseLogoEnabled, DisplayUseLogoEnabled); setter.SetBoolProperty(template => template.HomeButtonEnabled, HomeButtonEnabled); setter.SetProperty(template => template.Icon, Icon); setter.SetProperty(template => template.Logo, Logo); setter.SetProperty(template => template.SplitBackgroundDrawable, SplitBackgroundDrawable); setter.SetProperty(template => template.StackedBackgroundDrawable, StackedBackgroundDrawable); setter.SetBoolProperty(template => template.IsShowing, IsShowing); setter.SetStringProperty(template => template.Subtitle, Subtitle); setter.SetStringProperty(template => template.Title, Title); setter.SetBoolProperty(template => template.Visible, Visible); setter.SetBinding("HomeButton.Click", HomeButtonClick, false); if (string.IsNullOrEmpty(ItemsSource)) { if (Tabs != null) { ActionBar.Tab firstTab = null; for (int index = 0; index < Tabs.Count; index++) { var tab = Tabs[index].CreateTab(actionBar); if (firstTab == null) { firstTab = tab; } actionBar.AddTab(tab); } TryRestoreSelectedIndex(activity, actionBar); } } else { ActionBarTabItemsSourceGenerator.Set(actionBar, TabTemplate); setter.SetBinding(template => template.ItemsSource, ItemsSource, false); } setter.SetBinding(template => template.SelectedItem, SelectedItem, false); setter.Apply(); }
private void SetDataContext(object target, BindingSet setter, object dataContext, bool useContext) { if (useContext) { BindingServiceProvider.ContextManager.GetBindingContext(target).Value = dataContext; } else { XmlPropertySetter <object, object> .AddBinding(setter, target, AttachedMemberConstants.DataContext, DataContext, false); } }
private void SetDataContext(object target, BindingSet setter, object dataContext, bool useContext) { if (useContext) { target.SetDataContext(dataContext); } else { XmlPropertySetter <object, object> .AddBinding(setter, target, AttachedMemberConstants.DataContext, DataContext, false); } }
private void ApplyInternal(IMenu menu, Context context, int id, int order, object dataContext, bool useContext) { PlatformExtensions.ValidateTemplate(ItemsSource, Items); bool isSubMenu = !string.IsNullOrEmpty(ItemsSource) || (Items != null && Items.Count > 0); XmlPropertySetter <MenuItemTemplate, IMenuItem> setter; int groupId; int.TryParse(Group, out groupId); if (isSubMenu) { ISubMenu subMenu = menu.AddSubMenu(groupId, id, order, string.Empty); setter = new XmlPropertySetter <MenuItemTemplate, IMenuItem>(subMenu.Item, context, new BindingSet()); subMenu.SetBindingMemberValue(AttachedMembers.Object.Parent, menu); subMenu.Item.SetBindingMemberValue(AttachedMembers.Object.Parent, subMenu); SetDataContext(subMenu, setter.BindingSet, dataContext, useContext); ApplySelf(subMenu.Item, setter); if (string.IsNullOrEmpty(ItemsSource)) { for (int index = 0; index < Items.Count; index++) { Items[index].Apply(subMenu, context, index, index); } } else { subMenu.SetBindingMemberValue(AttachedMembers.Menu.ItemsSourceGenerator, new MenuItemsSourceGenerator(subMenu, context, ItemTemplate ?? this)); XmlPropertySetter <object, object> .AddBinding(setter.BindingSet, subMenu, AttachedMemberConstants.ItemsSource, ItemsSource, true); } } else { var menuItem = menu.Add(groupId, id, order, string.Empty); setter = new XmlPropertySetter <MenuItemTemplate, IMenuItem>(menuItem, context, new BindingSet()); menuItem.SetBindingMemberValue(AttachedMembers.Object.Parent, menu); SetDataContext(menuItem, setter.BindingSet, dataContext, useContext); ApplySelf(menuItem, setter); } setter.Apply(); }
private void ApplySelf(IMenuItem menuItem, XmlPropertySetter <MenuItemTemplate, IMenuItem> setter) { setter.SetStringProperty(template => template.AlphabeticShortcut, AlphabeticShortcut); setter.SetStringProperty(template => template.NumericShortcut, NumericShortcut); setter.SetProperty(template => template.Icon, Icon); setter.SetBoolProperty(template => template.IsCheckable, IsCheckable); setter.SetBoolProperty(template => template.IsChecked, IsChecked); setter.SetBoolProperty(template => template.IsEnabled, IsEnabled); setter.SetBoolProperty(template => template.IsVisible, IsVisible); setter.SetBoolProperty(template => template.IsActionViewExpanded, IsActionViewExpanded); setter.SetStringProperty(template => template.Title, Title); setter.SetStringProperty(template => template.TitleCondensed, TitleCondensed); setter.SetStringProperty(template => template.CommandParameter, CommandParameter); setter.SetBinding(template => template.Click, Click, false); #if !API8 setter.SetEnumProperty <ShowAsAction>(template => template.ShowAsAction, ShowAsAction); if (!string.IsNullOrEmpty(ActionViewBind)) { ServiceProvider.AttachedValueProvider.SetValue(menuItem, ActionViewBindKey, ActionViewBind); } if (!string.IsNullOrEmpty(ActionProviderBind)) { ServiceProvider.AttachedValueProvider.SetValue(menuItem, ActionProviderBindKey, ActionProviderBind); } #endif setter.SetBinding(template => template.ActionViewTemplateSelector, ActionViewTemplateSelector, false); setter.SetBinding(template => template.ActionProviderTemplateSelector, ActionProviderTemplateSelector, false); setter.SetProperty(template => template.ActionView, ActionView); setter.SetStringProperty(template => template.ActionProvider, ActionProvider); #if API8SUPPORT menuItem.SetOnMenuItemClickListener(new PlatformDataBindingModule.MenuItemOnMenuItemClickListener(menuItem)); #else menuItem.SetOnMenuItemClickListener(PlatformDataBindingModule.MenuItemOnMenuItemClickListener.Instance); #endif }
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); }
public void Apply(Activity activity) { PlatformExtensions.ValidateTemplate(ItemsSource, Tabs); var actionBar = activity.GetActionBar(); var setter = new XmlPropertySetter<ActionBarTemplate, ActionBar>(actionBar, activity, new BindingSet()); setter.SetEnumProperty<ActionBarNavigationMode>(() => template => template.NavigationMode, NavigationMode); setter.SetProperty(() => template => template.DataContext, DataContext); if (!string.IsNullOrEmpty(Bind)) setter.BindingSet.BindFromExpression(actionBar, Bind); setter.SetProperty(() => template => template.ContextActionBarTemplate, ContextActionBarTemplate); setter.SetBinding(() => template => template.ContextActionBarVisible, ContextActionBarVisible, false); setter.SetProperty(() => template => template.BackgroundDrawable, BackgroundDrawable); setter.SetProperty(() => template => template.CustomView, CustomView); setter.SetEnumProperty<ActionBarDisplayOptions>(() => template => template.DisplayOptions, DisplayOptions); setter.SetBoolProperty(() => template => template.DisplayHomeAsUpEnabled, DisplayHomeAsUpEnabled); setter.SetBoolProperty(() => template => template.DisplayShowCustomEnabled, DisplayShowCustomEnabled); setter.SetBoolProperty(() => template => template.DisplayShowHomeEnabled, DisplayShowHomeEnabled); setter.SetBoolProperty(() => template => template.DisplayShowTitleEnabled, DisplayShowTitleEnabled); setter.SetBoolProperty(() => template => template.DisplayUseLogoEnabled, DisplayUseLogoEnabled); setter.SetBoolProperty(() => template => template.HomeButtonEnabled, HomeButtonEnabled); setter.SetProperty(() => template => template.Icon, Icon); setter.SetProperty(() => template => template.Logo, Logo); setter.SetProperty(() => template => template.SplitBackgroundDrawable, SplitBackgroundDrawable); setter.SetProperty(() => template => template.StackedBackgroundDrawable, StackedBackgroundDrawable); setter.SetBoolProperty(() => template => template.IsShowing, IsShowing); setter.SetStringProperty(() => template => template.Subtitle, Subtitle); setter.SetStringProperty(() => template => template.Title, Title); setter.SetBoolProperty(() => template => template.Visible, Visible); setter.SetBinding("HomeButton.Click", HomeButtonClick, false); if (string.IsNullOrEmpty(ItemsSource)) { if (Tabs != null) { ActionBar.Tab firstTab = null; for (int index = 0; index < Tabs.Count; index++) { var tab = Tabs[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(() => template => template.ItemsSource, ItemsSource, false); } setter.SetBinding(() => template => template.SelectedItem, SelectedItem, false); setter.Apply(); }
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 void ApplySelf(IMenuItem menuItem, XmlPropertySetter<IMenuItem> setter) { if (!string.IsNullOrEmpty(Bind)) setter.BindingSet.BindFromExpression(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); var initalized = Initalized; if (initalized != null) initalized(this, menuItem, setter); setter.SetBinding(nameof(ActionViewTemplateSelector), ActionViewTemplateSelector, false); setter.SetBinding(nameof(ActionProviderTemplateSelector), ActionProviderTemplateSelector, false); setter.SetProperty(nameof(ActionView), ActionView); setter.SetStringProperty(nameof(ActionProvider), ActionProvider); }
private static void MenuItemTemplateInitialized(MenuItemTemplate menuItemTemplate, IMenuItem menuItem, XmlPropertySetter <MenuItemTemplate, IMenuItem> setter) { setter.SetEnumProperty <ShowAsAction>(() => template => template.ShowAsAction, menuItemTemplate.ShowAsAction); if (!string.IsNullOrEmpty(menuItemTemplate.ActionViewBind)) { ServiceProvider.AttachedValueProvider.SetValue(menuItem, ActionViewBindKey, menuItemTemplate.ActionViewBind); } if (!string.IsNullOrEmpty(menuItemTemplate.ActionProviderBind)) { ServiceProvider.AttachedValueProvider.SetValue(menuItem, ActionProviderBindKey, menuItemTemplate.ActionProviderBind); } }
private void ApplySelf(IMenuItem menuItem, XmlPropertySetter<MenuItemTemplate, IMenuItem> setter) { if (!string.IsNullOrEmpty(Bind)) setter.BindingSet.BindFromExpression(menuItem, Bind); setter.SetStringProperty(() => template => template.AlphabeticShortcut, AlphabeticShortcut); setter.SetStringProperty(() => template => template.NumericShortcut, NumericShortcut); setter.SetProperty(() => template => template.Icon, Icon); setter.SetBoolProperty(() => template => template.IsCheckable, IsCheckable); setter.SetBoolProperty(() => template => template.IsChecked, IsChecked); setter.SetBoolProperty(() => template => template.IsEnabled, IsEnabled); setter.SetBoolProperty(() => template => template.IsVisible, IsVisible); setter.SetBoolProperty(() => template => template.IsActionViewExpanded, IsActionViewExpanded); setter.SetStringProperty(() => template => template.Title, Title); setter.SetStringProperty(() => template => template.TitleCondensed, TitleCondensed); setter.SetStringProperty(() => template => template.CommandParameter, CommandParameter); setter.SetBinding(() => template => template.Click, Click, false); var initalized = Initalized; if (initalized != null) initalized(this, menuItem, setter); setter.SetBinding(() => template => template.ActionViewTemplateSelector, ActionViewTemplateSelector, false); setter.SetBinding(() => template => template.ActionProviderTemplateSelector, ActionProviderTemplateSelector, false); setter.SetProperty(() => template => template.ActionView, ActionView); setter.SetStringProperty(() => template => template.ActionProvider, ActionProvider); }
private void ApplyInternal(IMenu menu, Context context, int id, int order, object dataContext, bool useContext) { PlatformExtensions.ValidateTemplate(ItemsSource, Items); bool isSubMenu = !string.IsNullOrEmpty(ItemsSource) || (Items != null && Items.Count > 0); XmlPropertySetter<MenuItemTemplate, IMenuItem> setter; int groupId; int.TryParse(Group, out groupId); if (isSubMenu) { ISubMenu subMenu = menu.AddSubMenu(groupId, id, order, string.Empty); setter = new XmlPropertySetter<MenuItemTemplate, IMenuItem>(subMenu.Item, context, new BindingSet()); subMenu.SetBindingMemberValue(AttachedMembers.Object.Parent, menu); subMenu.Item.SetBindingMemberValue(AttachedMembers.Object.Parent, subMenu); SetDataContext(subMenu, setter.BindingSet, dataContext, useContext); ApplySelf(subMenu.Item, setter); if (string.IsNullOrEmpty(ItemsSource)) { for (int index = 0; index < Items.Count; index++) Items[index].Apply(subMenu, context, index, index); } else { subMenu.SetBindingMemberValue(AttachedMembers.Menu.ItemsSourceGenerator, new MenuItemsSourceGenerator(subMenu, context, ItemTemplate ?? this)); XmlPropertySetter<object, object>.AddBinding(setter.BindingSet, subMenu, AttachedMemberConstants.ItemsSource, ItemsSource, true); } } else { var menuItem = menu.Add(groupId, id, order, string.Empty); setter = new XmlPropertySetter<MenuItemTemplate, IMenuItem>(menuItem, context, new BindingSet()); menuItem.SetBindingMemberValue(AttachedMembers.Object.Parent, menu); SetDataContext(menuItem, setter.BindingSet, dataContext, useContext); ApplySelf(menuItem, setter); } setter.Apply(); }
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(); }