private void HistoryView_GoUp(object sender, EventArgs e) { var query = _queryHistory.Current; if (query == null) { return; } // build the parent folder query IExecutableQuery nextQuery = null; foreach (var pattern in query.Patterns) { var parentPattern = pattern.GetParent(); var parentQuery = _queryFactory.CreateQuery(parentPattern.Text); if (nextQuery == null) { nextQuery = parentQuery; } else { nextQuery = _queryFactory.Union(parentQuery, nextQuery); } } if (nextQuery == null) { return; } // execute it _queryHistory.ExecuteQuery(nextQuery); }