---
title: clsMenuItemCollection
summary: API reference for clsMenuItemCollection.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-17
library: SAIF.Business.Menu
reference_type: package
---

# clsMenuItemCollection

A collection of every `clsMenuItem`, used by menu-administration screens to enumerate and filter placements independent of any single user's authorization projection.

## Purpose
- Loads and holds the full set of menu items retrieved via [SQL-023](../../sql/SQL-023-retrieve-all-menu-items.md).

## Context
- Namespace: `SAIF.Business.Menu`
- Assembly/package: `SAIF.Business.Menu` (`SAIF.BOF.Presentation.Web.Infragistics111` NuGet package)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| NewMenuItems | `Shared Function NewMenuItems(dpi As IDataPortalInfo) As clsMenuItemCollection` | Factory that creates an empty, unmanaged collection ready to hold new items. |
| GetAllMenuItems | `Shared Function GetAllMenuItems(dpi As IDataPortalInfo) As clsMenuItemCollection` | Factory that loads every menu item ([SQL-023](../../sql/SQL-023-retrieve-all-menu-items.md)). |
| Where | `Function Where(predicate As Func(Of clsMenuItem, Boolean)) As IEnumerable(Of clsMenuItem)` | LINQ-style filter over the loaded items. |

## Inherited public members

Members in this section are inherited from `clsBusinessCollectionBase` in `SAIF.Framework.Core` (delivered by the `SAIF.BOF.Framework` package). They are available on this type through inheritance.

| Member | Signature | Purpose | Origin |
| --- | --- | --- | --- |
| First | `Sub First()` | Moves the collection's current-item cursor to the first element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Last | `Sub Last()` | Moves the cursor to the last element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Next | `Sub Next()` | Advances the cursor to the next element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Previous | `Sub Previous()` | Moves the cursor to the previous element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| SetCurrent | `Sub SetCurrent(item As Object)` | Sets the cursor to the given item (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Traverse | `Sub Traverse(...)` | Iterates the collection, applying a traversal callback to each element (`ITraversion`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Error | `ReadOnly Property Error As String` | Aggregated validation error message for the collection (`IDataErrorInfo`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |
| Item(columnName) | `ReadOnly Property Item(columnName As String) As String` | Per-column validation error message (`IDataErrorInfo`).† | `SAIF.Framework.Core` — `clsBusinessCollectionBase` |

## Related documentation
- [Index](../../index.md)
- [Overview](../../overview.md)
- [Architecture](../../architecture.md)
- [Operations and processes](../../operations-processes.md)
- [Business rules](../../business-rules.md)
- [Database tables](../../database-tables.md)
- [API reference](../index.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with `†` were retrieved from dependency library documentation via the Legends CLI RAG service. They describe inherited behavior from the indicated origin library and should be verified if the dependency version changes.

## Sources
- SAIF.Business.Menu/clsMenuItemCollection.vb
