@@ -49,9 +49,10 @@ private ValueTask<GridItemsProviderResult<SpanWaterfallViewModel>> GetData(GridI
4949 {
5050 Debug . Assert ( _spanWaterfallViewModels != null ) ;
5151
52+ var visibleSpanWaterfallViewModels = _spanWaterfallViewModels . Where ( viewModel => ! viewModel . IsHidden ) . ToList ( ) ;
5253 return ValueTask . FromResult ( new GridItemsProviderResult < SpanWaterfallViewModel >
5354 {
54- Items = _spanWaterfallViewModels ,
55+ Items = visibleSpanWaterfallViewModels ,
5556 TotalItemCount = _spanWaterfallViewModels . Count
5657 } ) ;
5758 }
@@ -72,15 +73,19 @@ private static List<SpanWaterfallViewModel> CreateSpanWaterfallViewModels(OtlpTr
7273
7374 return orderedSpans ;
7475
75- static void AddSelfAndChildren ( List < SpanWaterfallViewModel > orderedSpans , OtlpSpan span , int depth , IEnumerable < IOutgoingPeerResolver > outgoingPeerResolvers , Func < OtlpSpan , int , IEnumerable < IOutgoingPeerResolver > , SpanWaterfallViewModel > createViewModel )
76+ static SpanWaterfallViewModel AddSelfAndChildren ( List < SpanWaterfallViewModel > orderedSpans , OtlpSpan span , int depth , IEnumerable < IOutgoingPeerResolver > outgoingPeerResolvers , Func < OtlpSpan , int , IEnumerable < IOutgoingPeerResolver > , SpanWaterfallViewModel > createViewModel )
7677 {
77- orderedSpans . Add ( createViewModel ( span , depth , outgoingPeerResolvers ) ) ;
78+ var viewModel = createViewModel ( span , depth , outgoingPeerResolvers ) ;
79+ orderedSpans . Add ( viewModel ) ;
7880 depth ++ ;
7981
8082 foreach ( var child in span . GetChildSpans ( ) . OrderBy ( s => s . StartTime ) )
8183 {
82- AddSelfAndChildren ( orderedSpans , child , depth , outgoingPeerResolvers , createViewModel ) ;
84+ var childViewModel = AddSelfAndChildren ( orderedSpans , child , depth , outgoingPeerResolvers , createViewModel ) ;
85+ viewModel . Children . Add ( childViewModel ) ;
8386 }
87+
88+ return viewModel ;
8489 }
8590
8691 static SpanWaterfallViewModel CreateViewModel ( OtlpSpan span , int depth , IEnumerable < IOutgoingPeerResolver > outgoingPeerResolvers )
@@ -103,6 +108,7 @@ static SpanWaterfallViewModel CreateViewModel(OtlpSpan span, int depth, IEnumera
103108
104109 var viewModel = new SpanWaterfallViewModel
105110 {
111+ Children = [ ] ,
106112 Span = span ,
107113 LeftOffset = leftOffset ,
108114 Width = width ,
@@ -181,6 +187,11 @@ private string GetRowClass(SpanWaterfallViewModel viewModel)
181187
182188 public SpanDetailsViewModel ? SelectedSpan { get ; set ; }
183189
190+ private static void OnToggleCollapse ( SpanWaterfallViewModel viewModel )
191+ {
192+ viewModel . IsCollapsed = ! viewModel . IsCollapsed ;
193+ }
194+
184195 private void OnShowProperties ( SpanWaterfallViewModel viewModel )
185196 {
186197 if ( SelectedSpan ? . Span == viewModel . Span )
0 commit comments