Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разработка Windows Forms > User control datasource |
Автор: webgraf 17.12.2008, 16:04 |
VS2008. Контрол состоит из textbox и listbox. В listbox нужно биндить данные. Можно ли сделать контрол так, чтобы биндить как обычный listbox в design-mode, с выборкой из доступных datasource? В msdn на эту тему есть статья(http://msdn.microsoft.com/en-us/library/ms233813.aspx), но это не совсем то. Хотелось бы сделать как у стандартных элементов. У кого нибудь получалось? |
Автор: Partizan 17.12.2008, 16:24 |
webgraf, а в чём проблема? делаете свойства-обёртки для свойств listbox-а, проставляете им нужные атрибуты и вуаля.... |
Автор: webgraf 17.12.2008, 16:48 |
проблема в удобстве. обернуть DataSource listbox-а можно свойством типа Object. при этом в design-mode вообще не получится его редактировать. максимум что удается сделать, это как в примере, указать LookupBindingProperties для моего контрола. И уже из окна Datasource "биндить" источник данных на мой контрол. А хотелось бы как со стандарными элементами. Кинуть на форму и в меню Tasks выбрать нужный источик данных. или есть какой то атрибут свойства, который говорит дизайнеру что надо искать источик данных? |
Автор: Partizan 17.12.2008, 17:10 |
webgraf, надо просто EditorAttribute выставить, вот и всё |
Автор: webgraf 17.12.2008, 18:17 |
Что то на эту тему мало информации. :( Я так понял надо прописать что-то типа этого перед нужным свойством: [EditorAttribute("System.Windows.Forms.Design.DataMemberListEditor, System.Design", typeof(System.Drawing.Design.UITypeEditor))] Как найти нужный мне класс System.Windows.Forms.Design ? Данный пример не показывает источники данных проекта. :( может что то не так настроено? |
Автор: Partizan 17.12.2008, 18:21 | ||
Вот пример:
|
Автор: webgraf 17.12.2008, 18:54 | ||
а это для какой студии? у меня не заработало. Зато заработало так:
Теперь все именно так как хотел ![]() Там ищем нужный нам класс(например Datagrid), и смотрим как в нем описано нужное нам свойство. Спасибо Partizan! ;) |