public TabViewHeader() { this.InitializeComponent(); // >> tabview-features-tabviewheader-csharp RadTabView tabView = new RadTabView() { HeaderPosition = TabViewHeaderPosition.Bottom, Header = new Telerik.XamarinForms.Primitives.TabViewHeader() { BackgroundColor = (Color)(new ColorTypeConverter()).ConvertFromInvariantString("#293955"), OverflowButtonTemplate = new DataTemplate(() => { return(new Label() { Text = " + ", BackgroundColor = (Color)(new ColorTypeConverter()).ConvertFromInvariantString("#CA5100"), Margin = new Thickness(3, 0, 3, 0) }); }), } }; for (int i = 1; i <= 13; i++) { tabView.Items.Add(new Telerik.XamarinForms.Primitives.TabViewItem() { HeaderText = string.Format("Tab{0} ", i) }); } // << tabview-features-tabviewheader-csharp }
public TabViewItem() { this.InitializeComponent(); // >> tabview-features-tabviewitem-csharp RadTabView tabView = new RadTabView(); Telerik.XamarinForms.Primitives.TabViewItem homeTab = new Telerik.XamarinForms.Primitives.TabViewItem() { HeaderText = "Home", Content = new Label() { Text = "This is the content of the Home tab", Margin = new Thickness(10) }, }; Telerik.XamarinForms.Primitives.TabViewItem viewTab = new Telerik.XamarinForms.Primitives.TabViewItem() { HeaderText = "View", Content = new Label() { Text = "This is the content of the View tab", Margin = new Thickness(10) }, }; StackLayout folderTabHeaderPanel = new StackLayout() { Orientation = StackOrientation.Horizontal, Margin = new Thickness(5, 0, 0, 0), }; folderTabHeaderPanel.Children.Add(new ContentView() { BackgroundColor = (Color)(new ColorTypeConverter()).ConvertFromInvariantString("#CA5100"), WidthRequest = 10, HeightRequest = 10, VerticalOptions = LayoutOptions.Center, }); folderTabHeaderPanel.Children.Add(new Label() { Text = "Folder" }); Telerik.XamarinForms.Primitives.TabViewItem folderTab = new Telerik.XamarinForms.Primitives.TabViewItem() { Header = new TabViewHeaderItem() { Content = folderTabHeaderPanel }, Content = new Label() { Text = "This is the content of the Folder tab", Margin = new Thickness(10) }, }; tabView.Items.Add(homeTab); tabView.Items.Add(viewTab); tabView.Items.Add(folderTab); // << tabview-features-tabviewitem-csharp }
private static void ItemsSourceChanged(BindableObject bindable, object oldValue, object newValue) { RadTabView tabView = (RadTabView)bindable; IEnumerable newItemsSource = (IEnumerable)newValue; RemoveAllTabViewItems(tabView); INotifyCollectionChanged itemsSource = oldValue as INotifyCollectionChanged; if (itemsSource != null) { itemsSource.CollectionChanged -= ItemsSource_CollectionChanged; RemoveFromInfo(itemsSource, tabView); } if (newItemsSource != null) { foreach (object item in newItemsSource) { AddTabViewItem(tabView, item); } itemsSource = newValue as INotifyCollectionChanged; if (itemsSource != null) { itemsSource.CollectionChanged += ItemsSource_CollectionChanged; AddToInfo(itemsSource, tabView); } } }
private static void RemoveAllTabViewItems(RadTabView tabView) { for (int i = tabView.Items.Count - 1; i >= 0; i--) { RemoveTabViewItem(tabView, i); } }
private static void RemoveTabViewItem(RadTabView tabView, int i) { Telerik.XamarinForms.Primitives.TabViewItem tabItem = tabView.Items[i]; tabItem.BindingContext = null; tabItem.Header.ControlTemplate = null; tabItem.Content = null; tabView.Items.RemoveAt(i); }
private static void RemoveTabViewItem(RadTabView tabView, int i) { TabViewItem tabItem = tabView.Items[i]; tabItem.BindingContext = null; tabItem.Header.ControlTemplate = null; tabItem.Content = null; tabView.Items.RemoveAt(i); }
private static void ItemHeaderTemplateChanged(BindableObject bindable, object oldValue, object newValue) { RadTabView tabView = (RadTabView)bindable; ControlTemplate template = (ControlTemplate)newValue; foreach (TabViewItem tabItem in tabView.Items) { tabItem.Header.ControlTemplate = template; } }
private static void InsertTabViewItem(RadTabView tabView, object item, int index) { Telerik.XamarinForms.Primitives.TabViewItem tabItem = new Telerik.XamarinForms.Primitives.TabViewItem(); tabItem.Header.ControlTemplate = GetItemHeaderTemplate(tabView); tabItem.BindingContext = item; tabItem.Content = new BindableView { ControlTemplate = GetItemContentTemplate(tabView) }; tabView.Items.Insert(index, tabItem); }
private static void AddToInfo(INotifyCollectionChanged itemsSource, RadTabView tabView) { if (itemsSource == null) { return; } Info info = GetOrCreateInfo(itemsSource); info.tabViews.Add(new WeakReference(tabView)); }
private static void ItemContentTemplateChanged(BindableObject bindable, object oldValue, object newValue) { RadTabView tabView = (RadTabView)bindable; ControlTemplate template = (ControlTemplate)newValue; foreach (Telerik.XamarinForms.Primitives.TabViewItem tabItem in tabView.Items) { tabItem.Content = new BindableView { ControlTemplate = template }; } }
private static void RemoveFromInfo(INotifyCollectionChanged itemsSource, RadTabView tabView) { if (itemsSource == null) { return; } Info info = TryGetInfo(itemsSource); if (info != null) { info.tabViews.RemoveAll(wr => wr.Target == tabView); } }
private static void ItemsSource_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { INotifyCollectionChanged itemsSource = (INotifyCollectionChanged)sender; Info info = TryGetInfo(itemsSource); if (info == null) { return; } foreach (WeakReference wr in info.tabViews) { RadTabView tabView = (RadTabView)wr.Target; if (tabView == null) { continue; } switch (e.Action) { case NotifyCollectionChangedAction.Add: AddTabViewItem(tabView, e.NewItems[0]); break; case NotifyCollectionChangedAction.Move: tabView.Items.Move(e.OldStartingIndex, e.NewStartingIndex); break; case NotifyCollectionChangedAction.Remove: RemoveTabViewItem(tabView, e.OldStartingIndex); break; case NotifyCollectionChangedAction.Replace: RemoveTabViewItem(tabView, e.OldStartingIndex); InsertTabViewItem(tabView, e.NewItems[0], e.NewStartingIndex); break; case NotifyCollectionChangedAction.Reset: RemoveAllTabViewItems(tabView); break; default: break; } } }
public Selection() { // >> tabview-features-selection-csharp RadTabView tabView = new RadTabView(); tabView.Items.Add(new Telerik.XamarinForms.Primitives.TabViewItem() { HeaderText = "Home" }); tabView.Items.Add(new Telerik.XamarinForms.Primitives.TabViewItem() { HeaderText = "Folder" }); tabView.Items.Add(new Telerik.XamarinForms.Primitives.TabViewItem() { HeaderText = "View" }); tabView.SelectedItem = tabView.Items[1]; // << tabview-features-selection-csharp this.Content = tabView; }
public TabViewGettingStartedCSharp() { // >> tabview-getting-started-csharp RadTabView tabView = new RadTabView(); Telerik.XamarinForms.Primitives.TabViewItem homeTab = new Telerik.XamarinForms.Primitives.TabViewItem() { HeaderText = "Home", Content = new Label() { Text = "This is the content of the Home tab", Margin = new Thickness(10) }, }; Telerik.XamarinForms.Primitives.TabViewItem folderTab = new Telerik.XamarinForms.Primitives.TabViewItem() { HeaderText = "Folder", Content = new Label() { Text = "This is the content of the Folder tab", Margin = new Thickness(10) }, }; Telerik.XamarinForms.Primitives.TabViewItem viewTab = new Telerik.XamarinForms.Primitives.TabViewItem() { HeaderText = "View", Content = new Label() { Text = "This is the content of the View tab", Margin = new Thickness(10) }, }; tabView.Items.Add(homeTab); tabView.Items.Add(folderTab); tabView.Items.Add(viewTab); // << tabview-getting-started-csharp this.Content = tabView; }
private static void AddTabViewItem(RadTabView tabView, object item) { InsertTabViewItem(tabView, item, tabView.Items.Count); }