private Task SetupContextMenu(Query query, IEnumerable <Dimension> dimensionsAvailable) { // Only show Dimensions that haven't been grouped by. var dimensionContextMenuItems = dimensionsAvailable .Where(x => !query.GroupingDimensions.Contains(x)) .Select(x => new ContextMenuButtonItem(Scheduler) { DisplayName = x.Name, Command = new DelegateCommand( () => { var selectedDimension = dimensionsAvailable .SingleOrDefault(d => d.Name == x.Name); if (selectedDimension == null) { return; } //var selectedItem = Items[SelectedItemIndex]; var newFilter = query.GroupingDimensions .Select(d => new Nitrogen.Common.DataExplorer.Filter { Dimension = d, Operator = FilterOperator.Equals, Value = SelectedItem[d.Name] }) .ToList(); var newQuery = query.DrillDown(new[] { selectedDimension }, newFilter); _drillDownDimensionRequest.OnNext(newQuery); }) }); return(ContextMenu.AddRangeAsync(dimensionContextMenuItems)); }