public void ShouldExpandAndCollapse() { var target = new ExpandableItem<string>( "test" ); Assert.Equal( "test", target.Value ); Assert.False( target.IsExpanded ); Assert.PropertyChanged( target, "IsExpanded", () => target.IsExpanded = true ); Assert.True( target.IsExpanded ); target.Collapse.Execute( null ); Assert.False( target.IsExpanded ); target.Expand.Execute( null ); Assert.True( target.IsExpanded ); }
private async Task AddContent(ExpandableItem expandableItem) { await Task.Run(() => { foreach (var item in ContentList) { if (item.StyleId == "content_" + expandableItem._Key && item.Children.Count <= 0) { Device.BeginInvokeOnMainThread(() => { item.Children.Add(expandableItem.Content); }); break; } } }); }
private void ContentLayout_SizeChanged(object sender, EventArgs e) { int itemIndex = Convert.ToInt32(((StackLayout)sender).StyleId.Split('_')[1]); ContentBackgroundImage.HeightRequest = ((StackLayout)sender).Height; // ExpandableItems.Find(f=>f._Key==itemIndex.ToString())._SubContainer.HeightRequest= ((StackLayout)sender).Height; if (Animating == false) { ExpandableItem expandableItem = ExpandableItems[itemIndex]; expandableItem.ItemHeight = expandableItem._ContentLayout.Height; if (_ExpandModeExecutionCount < ExpandableItems.Count) { switch (ExpandMode) { case ExpandModeEnum.CollapseAll: expandableItem._ContentLayout.IsVisible = false; expandableItem.Expanded = false; break; case ExpandModeEnum.ExpandAll: expandableItem._ContentLayout.IsVisible = true; expandableItem.Expanded = true; break; case ExpandModeEnum.UserDefined: if (expandableItem.Expanded == false) { expandableItem._ContentLayout.IsVisible = false; expandableItem.Expanded = false; } else { expandableItem._ContentLayout.IsVisible = true; expandableItem.Expanded = true; } break; } _ExpandModeExecutionCount++; } } }
public void EqualsShouldReturnExpectedResult() { var target = new ExpandableItem<string>( "test" ); Assert.True( target == new ExpandableItem<string>( "test" ) ); Assert.True( target != new ExpandableItem<string>( "test1" ) ); Assert.True( target.Equals( new ExpandableItem<string>( "test" ) ) ); Assert.False( target.Equals( new ExpandableItem<string>( "test1" ) ) ); Assert.True( target.Equals( (object) new ExpandableItem<string>( "test" ) ) ); Assert.False( target.Equals( (object) new ExpandableItem<string>( "test1" ) ) ); target = new ExpandableItem<string>( "test", StringComparer.OrdinalIgnoreCase ); Assert.True( target == new ExpandableItem<string>( "TEST" ) ); Assert.True( target != new ExpandableItem<string>( "TEST1" ) ); Assert.True( target.Equals( new ExpandableItem<string>( "TEST" ) ) ); Assert.False( target.Equals( new ExpandableItem<string>( "TEST1" ) ) ); Assert.True( target.Equals( (object) new ExpandableItem<string>( "TEST" ) ) ); Assert.False( target.Equals( (object) new ExpandableItem<string>( "TEST1" ) ) ); }
private async void TitleBar_TapGestureRecognizer_Tapped(object sender, EventArgs e) { try { if (Animating) { return; } StackLayout subContainer = (StackLayout)((StackLayout)sender).Parent.Parent; int itemIndex = Convert.ToInt32(((StackLayout)sender).StyleId.Split('_')[1]); bool ContentVisible = false; ExpandableItem expandableItem = ExpandableItems.Find(f => f._Key == itemIndex.ToString()); ContentVisible = !expandableItem._ContentLayout.IsVisible; if (ContentVisible) { await AddContent(expandableItem); ShowExpandAnimation(expandableItem._ContentLayout); } else { ShowCollapseAnimation(expandableItem._ContentLayout); } expandableItem.Expanded = ContentVisible; if (expandableItem.Expanded) { expandableItem._TitleIcon.Source = ExpandImage; } else { expandableItem._TitleIcon.Source = CollapseImage; } if (AutoCollapseInactiveItems) { foreach (var item in ExpandableItems) { if (Convert.ToInt32(item._Key) != itemIndex) { item._ContentLayout.IsVisible = false; item._TitleIcon.Source = CollapseImage; item.Expanded = false; } } } } catch (Exception ex) { throw; } }