Форум программистов, компьютерный форум CyberForum.ru

Программирование Windows Phone

Войти
Регистрация
Восстановить пароль
 
__silence
0 / 0 / 1
Регистрация: 16.05.2015
Сообщений: 42
#1

ComboBox и ObservableCollection<MySuperControl> - Windows Phone

13.06.2015, 01:34. Просмотров 354. Ответов 7
Метки нет (Все метки)

Имеется MainPage в классе которой есть public переменная или свойство

C#
1
public ObservableCollection<MySuperControl> SuperControlCollection;   // MySuperControl derived from UserControl
MySuperControl - это большой и сложный элемент пользовательского интерфейса
(Стоит отметить, что у MySuperControl есть public String переменная/ свойство ControlName
определенная мною)

и есть на MainPage так же ComboBox
когда я делаю

XML
1
<ComboBox x:Name="BlahCombo" ItemsSource="{Binding}"/>
и
C#
1
BlahCombo.DataContext = SuperControlCollection;
в конструкторе MainPage
в качестве элементов в ComboBox у меня отображаются сами эти громоздкие MySuperControl.
Я хочу, что бы в BlahCombo показывались только их имена из свойства ControlName и делаю в XAML:
C#
1
<ComboBox x:Name="BlahCombo" ItemsSource="{Binding Path=ControlName}"/>
и
C#
1
<ComboBox x:Name="BlahCombo" ItemsSource="{Binding ControlName}"/>
и ничего не получается.
Помогите мне пожалуйста, а то уже з*е*ался!

Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
goodniko
Фрилансер
54 / 44 / 10
Регистрация: 13.12.2013
Сообщений: 371
13.06.2015, 14:36     ComboBox и ObservableCollection<MySuperControl> #2
попробуй через точку указать свойство, к примеру
XML
1
ItemsSource="{Binding ТвойКласс.Свойство}"
__silence
0 / 0 / 1
Регистрация: 16.05.2015
Сообщений: 42
13.06.2015, 17:23  [ТС]     ComboBox и ObservableCollection<MySuperControl> #3
К сожалению, не помогло.

Может есть еще какие варианты?
ablai96
116 / 114 / 13
Регистрация: 14.09.2012
Сообщений: 276
Завершенные тесты: 6
13.06.2015, 21:44     ComboBox и ObservableCollection<MySuperControl> #4
в коде у вас так
C#
1
public ObservableCollection<MySuperControl> SuperControlCollection;
или
C#
1
public ObservableCollection<MySuperControl> SuperControlCollection { get; set; }
__silence
0 / 0 / 1
Регистрация: 16.05.2015
Сообщений: 42
13.06.2015, 22:23  [ТС]     ComboBox и ObservableCollection<MySuperControl> #5
и так и так пробовал.

Добавлено через 18 секунд
Безтолку

Добавлено через 32 минуты
в общем я добавил в контрол
XML
1
2
3
4
5
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding ControlName}"/>                        
                    </DataTemplate>
                </ComboBox.ItemTemplate>
Но у этого ItemTemplate почему то не меняется DataContext на конкретный элемент ObservableCollection
Как быть в этом случае, помогите пожалуйста.
zedkom
20 / 7 / 5
Регистрация: 15.06.2015
Сообщений: 27
16.06.2015, 17:29     ComboBox и ObservableCollection<MySuperControl> #6
Потому что в ItemsSource не контролы пихать нужно, а коллекцию моделей.
__silence
0 / 0 / 1
Регистрация: 16.05.2015
Сообщений: 42
16.06.2015, 17:35  [ТС]     ComboBox и ObservableCollection<MySuperControl> #7
Поясните.

И если в самом контроле есть же открытые свойства то почему нет?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2015, 12:24     ComboBox и ObservableCollection<MySuperControl>
Еще ссылки по теме:

C# WPF ObservableCollection Contains
ListBox и ObservableCollection<class> C# WPF
C# WPF Как отобразить ObservableCollection<ObservableCollection<Page>> ?
Сортировка ObservableCollection C#
C# WPF Подключение ComboBox.SelectedIndex к Enum в ObservableCollection

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
zedkom
20 / 7 / 5
Регистрация: 15.06.2015
Сообщений: 27
17.06.2015, 12:24     ComboBox и ObservableCollection<MySuperControl> #8
Я наверняка не знаю (не нагуглил), но из увиденного и личного предположения, что он не может создать ItemTemplate для Item, если этот Item == контрол, а не моделька. Можете создать еще 1 коллекцию с чисто стрингами ControlName. Наполните её строками из коллекции SuperControlCollection и биндите комбобокс на неё. Так же, если Вам необходимо отслеживать изменения коллекций, это сделать тоже просто - пошпишитесь на CollectionChanged у SuperControlCollection и меняйте по её изменению имена контролов во второй коллекции.
Yandex
Объявления
17.06.2015, 12:24     ComboBox и ObservableCollection<MySuperControl>
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru