private static IItemsSourceGenerator GetOrAddTabBarItemsSourceGenerator(UITabBarController controller) { var generator = controller.GetBindingMemberValue(AttachedMembers.UITabBarController.ItemsSourceGenerator); if (generator == null) { generator = new ArrayItemsSourceGenerator <UITabBarController, UIViewController>(controller, AttachedMemberConstants.ItemTemplate, (tabBarController, controllers) => { tabBarController.SetViewControllers(controllers, true); var viewController = tabBarController.SelectedViewController; if (viewController != null) { if ((controllers.Length == 0) || !controllers.Contains(viewController)) { viewController.RemoveFromParentViewController(); viewController.View?.RemoveFromSuperviewEx(); if (controllers.Length == 0) { tabBarController.SetBindingMemberValue( AttachedMembers.UITabBarController.SelectedItem, BindingExtensions.NullValue); } else { tabBarController.SelectedViewController = controllers.Last(); } } } }); controller.SetBindingMemberValue(AttachedMembers.UITabBarController.ItemsSourceGenerator, generator); } return(generator); }
private static IItemsSourceGenerator GetOrAddToolBarItemsSourceGenerator(UIToolbar toolbar) { var generator = toolbar.GetBindingMemberValue(AttachedMembers.UIView.ItemsSourceGenerator); if (generator == null) { generator = new ArrayItemsSourceGenerator <UIToolbar, UIBarButtonItem>(toolbar, AttachedMemberConstants.ItemTemplate, (tabBarController, items) => tabBarController.SetItemsEx(items, true)); toolbar.SetBindingMemberValue(AttachedMembers.UIView.ItemsSourceGenerator, generator); } return(generator); }
private static IItemsSourceGenerator GetOrAddToolBarItemsSourceGenerator(UIViewController controller) { var generator = controller.GetBindingMemberValue(AttachedMembers.UIViewController.ToolbarItemsSourceGenerator); if (generator == null) { generator = new ArrayItemsSourceGenerator <UIViewController, UIBarButtonItem>(controller, AttachedMembers.UIViewController.ToolbarItemTemplateSelector, (tabBarController, items) => tabBarController.SetToolbarItemsEx(items, true)); controller.SetBindingMemberValue(AttachedMembers.UIViewController.ToolbarItemsSourceGenerator, generator); } return(generator); }
private static IItemsSourceGenerator GetOrAddToolBarItemsSourceGenerator(UIToolbar toolbar) { var generator = toolbar.GetBindingMemberValue(AttachedMembers.UIView.ItemsSourceGenerator); if (generator == null) { generator = new ArrayItemsSourceGenerator<UIToolbar, UIBarButtonItem>(toolbar, AttachedMemberConstants.ItemTemplate, (tabBarController, items) => tabBarController.SetItemsEx(items, true)); toolbar.SetBindingMemberValue(AttachedMembers.UIView.ItemsSourceGenerator, generator); } return generator; }
private static IItemsSourceGenerator GetOrAddToolBarItemsSourceGenerator(UIViewController controller) { var generator = controller.GetBindingMemberValue(AttachedMembers.UIViewController.ToolbarItemsSourceGenerator); if (generator == null) { generator = new ArrayItemsSourceGenerator<UIViewController, UIBarButtonItem>(controller, AttachedMembers.UIViewController.ToolbarItemTemplateSelector, (tabBarController, items) => tabBarController.SetToolbarItemsEx(items, true)); controller.SetBindingMemberValue(AttachedMembers.UIViewController.ToolbarItemsSourceGenerator, generator); } return generator; }
private static IItemsSourceGenerator GetOrAddTabBarItemsSourceGenerator(UITabBarController controller) { var generator = controller.GetBindingMemberValue(AttachedMembers.UITabBarController.ItemsSourceGenerator); if (generator == null) { generator = new ArrayItemsSourceGenerator<UITabBarController, UIViewController>(controller, AttachedMemberConstants.ItemTemplate, (tabBarController, controllers) => { tabBarController.SetViewControllers(controllers, true); var viewController = tabBarController.SelectedViewController; if (viewController != null) { if (controllers.Length == 0 || !controllers.Contains(viewController)) { viewController.RemoveFromParentViewController(); if (viewController.View != null) viewController.View.RemoveFromSuperviewEx(); if (controllers.Length == 0) tabBarController.SetBindingMemberValue( AttachedMembers.UITabBarController.SelectedItem, BindingExtensions.NullValue); else tabBarController.SelectedViewController = controllers.Last(); } } }); controller.SetBindingMemberValue(AttachedMembers.UITabBarController.ItemsSourceGenerator, generator); } return generator; }