Используйте класс ReadOnlyCollection
. Он расположен в System.Collections.ObjectModel
пространстве имен.
Для всего, что возвращает ваш список (или в конструкторе), установите список как доступную только для чтения коллекцию.
using System.Collections.ObjectModel;
...
public MyClass(..., List<ListItemType> theList, ...)
{
...
this.myListItemCollection= theList.AsReadOnly();
...
}
public ReadOnlyCollection<ListItemType> ListItems
{
get { return this.myListItemCollection; }
}