Не удается создать собственный класс ObservableCollection <ObservableCollection <T>> - PullRequest
0 голосов
/ 25 августа 2011

Почему я не могу определить LLSGroupsWithItems в следующем примере (он не будет компилироваться):

public class LLSGroupsWithItems<Group<T>> : ObservableCollection<Group<T>>
    {

    }

    public class Group<T> : ObservableCollection<T>
    {
        public Group(string name, IEnumerable<T> items)
        {
            this.Key = name;
            foreach (T item in items)
            {
                this.Add(item);
            }
        }

        public override bool Equals(object obj)
        {
            Group<T> that = obj as Group<T>;

            return (that != null) && (this.Key.Equals(that.Key));
        }

        public string Key
        {
            get;
            set;
        }
    }

Ошибка компилятора:

Type parameter declaration must be an identifier not a type.

Длинная история:

Я видел пример на WindowsPhoneGeek о том, как динамически добавлять элементы в структуру формы ObservableCollection<ObservableCollection<T>>, но я хочу инкапсулировать функциональность автоматической группировки в коллекции, с которой связан мой LongListSelector, так что яне всегда нужно смотреть, к какой группе добавить тот или иной элемент.Для этого, я полагаю, мне нужно создать класс, который я пытаюсь определить, но ограничения C # или что-то не позволят мне.Пожалуйста, объясните почему.Благодарю.

1 Ответ

4 голосов
/ 25 августа 2011

Разве это

public class LLSGroupsWithItems<Group<T>> : ObservableCollection<Group<T>>
{
}

не должно быть написано так вместо этого?

public class LLSGroupsWithItems<T> : ObservableCollection<Group<T>>
{
}
...