Я пытаюсь создать список меню, которые пользователь может выбрать из TreeView.После выбора меню из дерева я хочу показать элементы в этом меню в отдельной части окна.Моя первая мысль о том, как это сделать, - создать класс, как показано ниже:
public class SettingsMenu
{
public string Name { set; get; }
public ObservableCollection<object> Items { set; get; }
public SettingsMenu()
{
Name = "";
Items = new ObservableCollection<object>();
}
public SettingsMenu(string _name, ObservableCollection<object> _items)
{
Name = _name;
Items = _items;
}
public void AddItem(object _item)
{
Items.Add(_item);
}
}
Где «Предметы» - это элементы в меню.Затем я создам новый экземпляр этого класса для каждого меню в моей системе и инициализирую его именем и набором элементов ObservableCollection.
Однако элементы могут быть нескольких пользовательских типов.Для базовой демонстрации моей проблемы это будет эквивалентно:
MenuInts = new SettingsMenu("Menu1", new ObservableCollection<int>());
MenuStrings = new SettingsMenu("Menu2", new ObservableCollection<string>());
MenuBools = new SettingsMenu("Menu3", new ObservableCollection<bool>());
Но я получаю ошибку компилятора:
Cannot convert from
'System.Collections.ObjectModel.ObservableCollection<type>' to
'System.Collections.ObjectModel.ObservableCollection<object>'
Я хотел бы использовать один класс "Меню"так что я могу использовать его согласованно для отображения и взаимодействия в пользовательском интерфейсе.Есть ли способ иметь один мастер-класс, который может содержать коллекцию ObservableCollection любого типа?