Древовидные альтернативы

В настоящее время я работаю над проектом, который включает в себя список контактов с фотографией и адресом электронной почты, что-то вроде списков контактов в мессенджерах.

Проблема в том, что ListView просто не режется!

Мне нужно что-то вроде списков контактов MSN Live Messenger, ведьма состоит из большой области с заполнением фото (32 пикселя) и текста справа от фото, но также имеет расширяемые заголовки.

Кто-нибудь даст мне несколько советов по любым ссылкам, которые я могу использовать, или, если это возможно сделать с Tree-view, может кто-нибудь показать мне пример.

С уважением.


person RobertPitt    schedule 11.07.2010    source источник


Ответы (2)


Я бы рекомендовал создать пользовательский элемент управления WPF и разместить его в ElementHost в вашем проекте Windows Forms. Раньше я использовал WPF внутри WinForms, и он отлично работает.

Предполагая, что вы добавили элемент управления хостом в свои WinForms с именем elementHost1:

        elementHost1.Child = new MyWPFControl();
person Brian R. Bondy    schedule 11.07.2010
comment
проблема в том, что проект уже завершен на 40%, и я не так уверен в WPF, так как я не изучал его так много, я действительно хотел бы использовать WPF, но поскольку проект находится в стадии реализации, у нас нет времени, чтобы переключиться сейчас. - person RobertPitt; 12.07.2010
comment
@RobertPitt: Вы неверно истолковываете мой ответ, я не предлагаю переключаться. Вы бы не переключали и не переделывали старый код. Единственное, что можно было бы сделать в WPF, — это одиночный пользовательский элемент управления. У вас по-прежнему будет проект Winforms, просто он размещает один пользовательский элемент управления WPF через элемент ElementHost. - person Brian R. Bondy; 12.07.2010
comment
Ааа ок, теперь я с тобой. Есть ли шанс, что вы можете предоставить пример того, как добавить ListView к хосту Element, который я только что создал? - person RobertPitt; 12.07.2010
comment
Хорошо, спасибо за вашу помощь, я добавил необходимые ссылки, добавил инициацию объекта в дизайн, ListView() теперь прикреплен к моему Elementhost, всякий раз, когда я пытаюсь отредактировать размещенный элемент, он говорит, что Cannot find child item in the solution .. Любые идеи :) - person RobertPitt; 12.07.2010
comment
не уверен, но я не думаю, что это вообще связано с хостом элемента. Кстати, я рекомендую сделать пользовательский элемент управления wpf, который содержит ваше древовидное представление. - person Brian R. Bondy; 12.07.2010
comment
Большое спасибо, теперь у меня есть гибридное приложение. После некоторых исследований я заставил его работать, Никли :) - person RobertPitt; 12.07.2010
comment
Здорово! Поздравляю :) Элементы управления WPF намного проще для такого рода вещей. - person Brian R. Bondy; 12.07.2010
comment
Да, я согласен, я просто должен теперь изучить задачи, необходимые для создания дизайна :), еще раз спасибо - person RobertPitt; 12.07.2010

Вы используете WPF? В конце концов, вы могли бы использовать ListView с Expander для ItemTemplate. У Blacklight также есть отличный AnimatedExpander: см. выпуски Blacklight.

Надеюсь, это поможет!

person Kieren Johnstone    schedule 11.07.2010
comment
с помощью Windows Forms. Я недостаточно уверен в WPF atm, и у этого проекта есть крайний срок, поэтому он пошел по самому быстрому пути. - person RobertPitt; 12.07.2010
comment
Ах, неважно. WPF отлично подходит для таких вещей; вы можете помещать кнопки в кнопки, расширители в TreeViews, вращать 3D-кубы с текстовыми полями в полях со списком.. ну, вы поняли идею. - person Kieren Johnstone; 12.07.2010
comment
Я пошел с Brian R. Bondy ответом на использование гибридной интеграции. Спасибо за вашу помощь в любом случае. - person RobertPitt; 12.07.2010