Сначала я только исправил ошибку, но, увидев ссылку, заметил, что старый ответ не очень помогает.
Вы все равно можете найти его внизу.
Новый ответ
Я только что посмотрел на ссылку, и кажется, что вы все равно делаете не так.
Вам нужен ваш класс для наследования от ObservableCollection<T>
, и вместо поля / свойства List
вы должны использовать функциональность базового класса (в котором уже есть метод Add
):
class ListboxMenuItems : ObservableCollection<ListboxMenuItem>
{
public ListboxMenuItems ()
{
// 'Add' here means 'base.Add'
Add (new ListboxMenuItem ("Michael", "Anderberg", "12 North Third Street, Apartment 45"));
Add (new ListboxMenuItem ("Chris", "Ashton", "34 West Fifth Street, Apartment 67"));
Add (new ListboxMenuItem ("Cassie", "Hicks", "56 East Seventh Street, Apartment 89"));
Add (new ListboxMenuItem ("Guido", "Pica", "78 South Ninth Street, Apartment 10"));
}
}
Все это четко написано в предоставленной вами ссылке, поэтому вам следует быть осторожнее с принятием кода из документации.
Старый ответ
Вы поместили код инициализации прямо в объявление класса, где обычно размещаются методы, поля и свойства.
Код инициализации помещается в специальный метод с именем ctor constructor ’, имя которого совпадает с именем класса, не имеет возвращаемого типа и помещается внутри соответствующего класса:
class ListboxMenuItems
{
public List<ListboxMenuItem> Items { get; private set; }
public ListboxMenuItems ()
{
Items = new List<ListboxMenuItem> {
new ListboxMenuItem ("Michael", "Anderberg", "12 North Third Street, Apartment 45"),
new ListboxMenuItem ("Chris", "Ashton", "34 West Fifth Street, Apartment 67"),
new ListboxMenuItem ("Cassie", "Hicks", "56 East Seventh Street, Apartment 89"),
new ListboxMenuItem ("Guido", "Pica", "78 South Ninth Street, Apartment 10")
};
}
}
Я изменил Items
с поля на свойство. Это лучший метод, потому что вы можете указать, кто может его изменить (в нашем случае private set
позволяет установить его только из ListboxMenuItems
).
Я также использовал синтаксис инициализатора списка, который позволяет отбрасывать многие вызовы Add
в пользу более чистого, беспрепятственного синтаксиса.