![]() |
|
Модераторы: gambit, Kefir, Partizan |
![]()
|
|
| Capflint |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.5.2008 Где: Донецк Репутация: нет Всего: нет |
проблема:
есть несколько UserControl'ов, которые находятся на панели Canvas, и несколько FrameworkElement'ов. каждый FrameworkElement хранит ссылку на UserControl. причем несколько FrameworkElement могут ссылаться на один UserControl. для выбора на какой UserControl ссылаться, есть ComboBox, в котором должны отображаться все UserControl'ы. как это сделать? пробывал так:
При раскрытии списка возникает исключение NullReferenceException. Если добавить строку
то в раскрытом списке появляется имя UserControl (uc1) , но при выборе элемента списка combobox пуст . но все равно это не выход. так должно отображаться имя UserControl'а, а мне нужен его внешний вид (сам UserControl). Помогите кто может!!!!! Это сообщение отредактировал(а) Capflint - 28.4.2010, 16:00 |
||||
|
|||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
Зачем все в коде пишете? Сбиндите в XAML-е ItemsSource у комбобокса к ObservableCollection ваших контролов
ЗЫ Один инстанс контрола может только один раз в дереве видимости появляться Это сообщение отредактировал(а) Sartorius - 28.4.2010, 16:14 |
|||
|
||||
| Capflint |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.5.2008 Где: Донецк Репутация: нет Всего: нет |
потому что все будет происходить динамически: добавление контролов, формирование списка и даже создание канваса. да и вообще, я просто сишный код лучше воспринимаю, чем xaml. не привык еще.
если можно немного поподробнее. какая разница к какой коллекции будет привязка: UIElementCollection или ObservableCollection. а может List<T> или Hashtable?
тогда получается, что задача не решаема? Это сообщение отредактировал(а) Capflint - 28.4.2010, 21:51 |
||||
|
|||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
ObservableCollection умеет уведомлять подписчиков об изменениях (добавление, удаление элементов). Если после биндинга менять коллекцию не собираетесь - подойдет все что реализует IEnumerable Нужно создать копию контрола и добавлять в комбо ее Это сообщение отредактировал(а) Sartorius - 29.4.2010, 12:13 |
|||
|
||||
| Capflint |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.5.2008 Где: Донецк Репутация: нет Всего: нет |
Это я и так знаю. я не вижу как это мне может помочь. комбобокс у меня существует не всегда, а только тогда, когда потребует пользователь. поэтому, и уведомлять об изменениях нечего как это сделать. после добывления контрола в окно, он может поменять целую кучу свойств (цвет фона, границы, надписи или какие-то свои). а надо, чтоб добавлялся контрол именно такой, какой он есть в данный момент |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
||||
|
||||
| Capflint |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.5.2008 Где: Донецк Репутация: нет Всего: нет |
а как тогда быть? может предложите свой способ?
П.С. в принципе, можно сделать и вообще без привязки данных
Не знаю зачем вообще я привязку сюда влепил Это сообщение отредактировал(а) Capflint - 29.4.2010, 12:59 |
|||
|
||||
| Sartorius |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1568 Регистрация: 18.7.2006 Где: Ivory tower Репутация: 1 Всего: 37 |
Если нужно изображение контрола в комбо, можно использовать WritableBitmap http://blogs.microsoft.co.il/blogs/alex_go...ablebitmap.aspx Рендерим контрол в него, ресайзим как надо (типа thumbnail-а получается) и сорцем в Image, а Image в комбо. Как-то так |
|||
|
||||
| Capflint |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 23.5.2008 Где: Донецк Репутация: нет Всего: нет |
Спасибо за помощь. я думаю это поможет. но есть еще вопрос:
может сталкивались с этим или знаете в чем причина? |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |