|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|||||||||||
Создание простого Binding'a (привязка класса к ListBox)06.04.2012, 00:34. Показов 24917. Ответов 23
Метки нет (Все метки)
При освоении технологии binding столкнулся с проблемой. Есть ListBox и есть, скажем класс Person. Определяем ObservableCollection<Person> ppl и хотим привязать его содержимое в ListBox. Для этого делаю следующее:
Спасибо Добавлено через 17 часов 6 минут Неужели нет ответа на вроде бы простой вопрос?
2
|
|||||||||||
| 06.04.2012, 00:34 | |
|
Ответы с готовыми решениями:
23
Создание простого класса
|
|
14 / 14 / 3
Регистрация: 18.02.2011
Сообщений: 53
|
||
| 06.04.2012, 01:01 | ||
|
Не понятно в чем проблема. Не работает привязка в xaml'е? или не обновляются значения в ListBox'е при изменении коллекции?(реализует ли класс Person интерфейс INotifyPropertyChanged?)
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 06.04.2012, 02:39 [ТС] | |
|
Если раскомментировать строку, то все работает. Проблема в том, что я хочу чтобы работало без вмешательства в код. Интерфейс реализовывать не обязательно т.к и без него должно работать. Суть проблемы что привязка работает из Code Behind и не работает из xaml. Мне нужно решить проблему привязки средствами xaml
0
|
|
|
374 / 135 / 19
Регистрация: 16.07.2010
Сообщений: 342
|
||||||
| 06.04.2012, 15:15 | ||||||
Сообщение было отмечено SatanaXIII как решение
Решение
Во-первых, я сомневаюсь, что может работать привязка к полю, оформите ppl как свойство.
Во-вторых, биндинг в xaml написан неправильно. В текущем варианте свойство с таким именем ищется в объекте DataContext листбокса (и далее вверх по иерархии). Чтобы свойство искалось в объекте окна, нужно использовать свойство биндинга RelativeSource:
2
|
||||||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 06.04.2012, 22:02 [ТС] | |
|
Спасибо, так работает. А как быть если коллекция находиться внутри другого класса? Например есть клас MyClass.cs екземпляр которого есть в MainWindow.cs и внутри клаccа коллекция ppl. Как тогда задать путь правильно?
0
|
|
|
374 / 135 / 19
Регистрация: 16.07.2010
Сообщений: 342
|
||||||||||||||||
| 09.04.2012, 08:19 | ||||||||||||||||
|
Можно изменить путь биндинга. Допустим, свойство окна, возвращающее экземпляр класса MyClass, называется Property1. Тогда путь будет выглядеть так:
2
|
||||||||||||||||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 09.04.2012, 16:13 [ТС] | |
|
Большое спасибо)
0
|
|
|
|
|||||||
| 06.11.2015, 21:17 | |||||||
|
Ereona, Как быть, если структура классов такая:
|ProductName | Versions | Editions | |----------------|-----------|----------| |"My Program"| 1,2,3 | 2.*, 3.* | Т.е. как быть, если основной класс, содержит несколько подклассов, свойства которых хочется объединить в 1 строку или запихнуть в 1 столбец. Свойства в ProgramID обязательно будут не NULL. Добавлено через 1 минуту Добавлено через 1 час 33 минуты "простой Binding" превратился в создание стиля ListBoxItem и дополнительного класса стиля с методом "сбора" всех свойств подклассов в одну строку. Было весело
0
|
|||||||
|
374 / 135 / 19
Регистрация: 16.07.2010
Сообщений: 342
|
|
| 07.11.2015, 16:04 | |
|
Тут для биндинга можно использовать конвертер.
0
|
|
| 07.11.2015, 16:57 [ТС] | |
|
Не по теме: Я сначала непонял что за тема такая...потом на дату посмотрел =)
0
|
|
|
|
||||||||||||
| 07.11.2015, 17:01 | ||||||||||||
Добавлено через 29 секунд Работает. Правильно сделал?
0
|
||||||||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|||||||
| 27.04.2018, 10:30 | |||||||
|
А вот мне интересно равносилен ли данный приведенный вариант:
0
|
|||||||
|
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
|
|
| 28.04.2018, 17:43 | |
|
1
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|||||||||||||||||
| 21.08.2018, 11:45 | |||||||||||||||||
|
Если кто может, поясните пожалуйста следующий пример: XAML
Код C#
Вспомогательный класс DGItem
Два однотипных DataGrid, с одним источником, но чуть разным биндингом к этому источнику. Если в коде C# расскомментировать двадцатую строку, где вручную устанавливается ItemsSource для DG1, то поведение обоих DataGrid становится одинаковым. Следовательно установка в XAML источника данных для DG1 через ElementName является неполной/нерабочей.
0
|
|||||||||||||||||
|
Модератор
|
|||||||||||||||||
| 22.08.2018, 10:50 | |||||||||||||||||
|
Не совсем понял Ваш вопрос (оглядываясь на Ваш стаж). Это тест для начинающих: кто знает или не знает?
Я только месяц пытаюсь это изучить. Ошибка в том, что при задании свойства DGItems оно не инициализируется и, соответственно, на момент инициализации DG1 оно установлено в null. Поэтому привязка, указанная в XAML, не создаётся. Если DGItems инициализировать так (строка 3 в обоих вариантах): Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Добавлено через 2 минуты Добавлено через 6 минут Третий вариант. Перенести инициалицацию свойства в конструкторе MainWindow до инициализации элементов:
1
|
|||||||||||||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|||
| 22.08.2018, 13:11 | |||
|
Вся шутка использования ObservableCollection в том, чтобы как раз не использовать дополнительные события. Поэтому нагромождение, предложенное вами в первых двух вариантах, безусловно рабочее, но излишнее. А вот за третий вариант спасибо.
0
|
|||
|
Модератор
|
||||||||||||||
| 22.08.2018, 18:10 | ||||||||||||||
|
Если же Вы, как у Вас в коде, переинициализацию сделаете через new :
Добавлено через 3 минуты Особенно учитывая что очень часто списки значений формируются через LINQ запросы. И каждый раз создаётся новый список - без INotifyPropertyChanged никак не обойтись... Добавлено через 9 минут
0
|
||||||||||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 23.08.2018, 12:41 | |
|
Да, слишком большие надежды я возложил на ObservableCollection.
Элд Хасп, спасибо за столь содержательный и конструктивный диалог.
0
|
|
|
|
|||||||
| 23.08.2018, 13:11 | |||||||
0
|
|||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 23.08.2018, 13:16 | |
|
skilllab, да, да, спасибо. Элд Хасп уже подсказал по поводу порядка инициализации.
0
|
|
| 23.08.2018, 13:16 | |
|
Помогаю со студенческими работами здесь
20
Привязка Listbox не срабатывает
Привязка данных ListBox
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|