иногда WPF слишком сложна для меня. У меня есть «Window1», держащий коллекцию «Групп». «Группа» - это класс с коллекцией «Человек». В конце концов, это должен быть список контактов. То, что я просто хочу сделать, - показать группы со своим человеком в ListBox, где групповое имя групп списка равно Именному свойству моего класса «Группы».WPF: коллекция Bind с коллекцией в ListBox с группами
Я попытался использовать CollectionViewSource, привязанный к «Коллекции». Группы отображаются правильно, но элементы списка равны именам групп. Таким образом, каждая группа имеет только один элемент: название своей группы.
Многие примеры здесь показывают группировку предметов только с одной коллекцией. Я могу установить имя группы как «Свойство». Но тогда я не могу сосчитать (и это действительно необходимо): - сколько человек в каждой группе - сколько из этих лиц имеет статус «Онлайн».
Я использую linq в классе «Group», чтобы считать это. Спасибо за любые советы, которые помогут мне начать работу.
Это тихо помогает и соответствует моему старому решению, где у меня есть Expander для каждой группы и ListBox для контактов. Проблема здесь в том, что вы можете выбрать человека в списке, но я предположил, что вы можете сделать это с одним. Я пытаюсь скопировать пользовательский интерфейс списка контактов Windows Live Messenger 2009. Я думаю, что они использовали только один ListBox и Expander в качестве ControlTemplate для группы. Но я также предполагаю, что они определили группу как свойство. Но я действительно не знаю, как они могут рассчитывать онлайн-людей. Кстати, вы правы со своими классами. – 2009-05-22 08:01:42
Почему вы не используете элемент управления TreeView для отображения иерархических данных? – idursun
Вы абсолютно правы! Я думаю, это решило бы мою проблему наверняка. У меня нет ответа на вопрос «почему». Я не использовал элемент управления TreeView. Но это было бы лучше для моей проблемы. Благодаря! – 2009-05-22 09:01:32