UIViewController CreateViewController(int index) { Xamarin.Forms.View formsView = null; object bindingContext = null; if (Element.ItemsSource != null) { bindingContext = Element.ItemsSource.Cast <object> ().ElementAt(index); } var selector = Element.ItemTemplate as DataTemplateSelector; if (selector != null) { formsView = (Xamarin.Forms.View)selector.SelectTemplate(bindingContext, Element).CreateContent(); } else { formsView = (Xamarin.Forms.View)Element.ItemTemplate.CreateContent(); } formsView.BindingContext = bindingContext; // UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height var rect = new CGRect(Element.X, Element.Y, ElementWidth, ElementHeight); var nativeConverted = FormsViewToNativeiOS.ConvertFormsToNative(formsView, rect); var viewController = new ViewContainer(); viewController.Tag = index; viewController.View = nativeConverted; return(viewController); }
UIViewController CreateViewController(int index) { View formsView = null; object bindingContext = null; if (Source != null && Source?.Count > 0) { bindingContext = Source.Cast <object>().ElementAt(index); } var dt = bindingContext as DataTemplate; // Support for List<DataTemplate> as ItemsSource if (dt != null) { formsView = (View)dt.CreateContent(); } else { var selector = Element.ItemTemplate as DataTemplateSelector; if (selector != null) { formsView = (View)selector.SelectTemplate(bindingContext, Element).CreateContent(); } else { formsView = (View)Element.ItemTemplate.CreateContent(); } formsView.BindingContext = bindingContext; } // HeightRequest fix formsView.Parent = this.Element; // UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height var rect = new CGRect(Element.X, Element.Y, ElementWidth, ElementHeight); var nativeConverted = FormsViewToNativeiOS.ConvertFormsToNative(formsView, rect); var viewController = new ViewContainer(); viewController.Tag = index; viewController.View = nativeConverted; return(viewController); }