private void OnAccordionExtendedContentButtonClicked(AccordionExtendedContentButton sender) { var senderButton = (AccordionExtendedContentButton)sender; if (!senderButton.Expand) { foreach (var childItem in mainLayout.Children) { if (childItem.GetType() == typeof(ContentView)) { childItem.IsVisible = false; } if (childItem.GetType() == typeof(AccordionExtendedContentButton)) { var button = (AccordionExtendedContentButton)childItem; button.Expand = false; } } if (senderButton.Expand) { senderButton.Expand = false; } else { senderButton.Expand = true; } senderButton.AssosiatedContent.IsVisible = senderButton.Expand; } }
public void DataBind() { mainLayout = new StackLayout(); var layout = new StackLayout(); var first = true; var firstOuter = FirstExpaned; if (DataSource != null) { foreach (var singleItem in DataSource) { var titleButton = new AccordionExtendedMainButton() { Text = singleItem.Title ?? "", ButtonStyle = singleItem.TitleStyle, ButtonDefaultStyle = singleItem.TitleStyle, ButtonSelectedStyle = singleItem.TitleSelectedStyle, HorizontalOptions = LayoutOptions.FillAndExpand }; titleButton.Expand = firstOuter; titleButton.Clicked += OnAccordionExtendedMainButtonClicked; layout.Children.Add(titleButton); foreach (var accordionExtendedSourceItem in singleItem.AccordionExtendedSourceItems) { var headerButton = new AccordionExtendedContentButton() { Text = accordionExtendedSourceItem.HeaderText, TextStyle = accordionExtendedSourceItem.HeaderTextStyle, TextDefaultStyle = accordionExtendedSourceItem.HeaderTextStyle, TextSelectedStyle = accordionExtendedSourceItem.HeaderTextSelectedStyle, ImageSource = accordionExtendedSourceItem.HeaderImage, ImageDefaultSource = accordionExtendedSourceItem.HeaderImage, ImageSelectedSource = accordionExtendedSourceItem.HeaderImageSelected, ImageStyle = accordionExtendedSourceItem.HeaderImageStyle, NotePart1 = accordionExtendedSourceItem.HeaderNotePart1, NotePart2 = accordionExtendedSourceItem.HeaderNotePart2, NotePart3 = accordionExtendedSourceItem.HeaderNotePart3, NoteStyle = accordionExtendedSourceItem.HeaderNoteStyle, NotePart2Style = accordionExtendedSourceItem.HeaderNotePart2Style }; headerButton.IsVisible = firstOuter; var accordionExtendedContent = new ContentView() { Content = accordionExtendedSourceItem.ContentItems, IsVisible = false }; if (first) { headerButton.IsVisible = firstExpaned; headerButton.Expand = firstExpaned; accordionExtendedContent.IsVisible = firstExpaned; first = false; } headerButton.AssosiatedContent = accordionExtendedContent; headerButton.GestureRecognizers.Add(new TapGestureRecognizer() { Command = new Command(() => { OnAccordionExtendedContentButtonClicked(headerButton); }) }); titleButton.AccordionExtendedButtons.Add(headerButton); layout.Children.Add(headerButton); layout.Children.Add(accordionExtendedContent); } firstOuter = false; } } mainLayout = layout; Content = mainLayout; }