Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ListBox: Элемент и его ID.
|
|||
|---|---|---|---|
|
#18+
Задача проста как валенки, но шось не могу найти как это реализуется в WPF. Я хочу загружать в ListBox данные из таблицы-словаря, т.е. соответствие "ИмяЭлемента - IDЭлемента" Например такое: авторГород = 11 Поселок = 21 ... Хутор = 130 С загрузкой "ИмениЭлемента" проблем нет - ListBox1.Items.Add("ИмяЭлемента"); А как поставить в ListBox1 в соответсвие каждому"ИмениЭлемента" еще и IDЭлемента. Т.е. при клике на каждом элементе ListBox1 я хочу помимо Названия Элемента еще получать его ID. Как это делается в WPF? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2011, 01:06 |
|
||
|
ListBox: Элемент и его ID.
|
|||
|---|---|---|---|
|
#18+
загружать в список (подсовывать источник элементов itemscontrol-у) лучше имеющийся словарь а не его "производную", это и эффективней(не плодить лишних сущностей) и в результате получим выбранный элемент словаря - со всеми его свойствами ну а отображать, так это либо так Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2011, 12:19 |
|
||
|
ListBox: Элемент и его ID.
|
|||
|---|---|---|---|
|
#18+
На таком простом примере есть отличная возможность освоить Data Binding + MVVM. Заводим класс ListItemViewModel. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. На главной форме (или в другой ViewModel, например в MainWindowViewModel) держим ObservableCollection<ListItemViewModel> ItemsList. Там же делаем загрузку списка из источника. Для отображения делаем так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Вот вам небольшой пример. Для удобства некоторый код из ListItemViewModel можно перенести в BaseViewModel. И все ViewModel наследовать от BaseViewModel. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Тогда ListItemViewModel будет выглядеть так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Если для главной формы завести ViewModel, то нужно эту вью модель пихнуть в DataContext формы. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2011, 16:35 |
|
||
|
ListBox: Элемент и его ID.
|
|||
|---|---|---|---|
|
#18+
Крррасотыщщща! Хера се что навыдумывали. Помнится в ASP.Net был простой ListItem для таких целей, а тут така гора букоф. Ладно! Пасибо на добром слове! Буду курить ваш код! П.С. (спрашиваю с опаской) А может все такие есть что-то проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2011, 17:39 |
|
||
|
ListBox: Элемент и его ID.
|
|||
|---|---|---|---|
|
#18+
RegisteredUser А может все такие есть что-то проще? в элементе словаря оверрайдить метод ToString() - куда уж проще ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2011, 18:01 |
|
||
|
ListBox: Элемент и его ID.
|
|||
|---|---|---|---|
|
#18+
Нашел хороший пример реализации для Windows Forms Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Хотя не понятно почему ни в WPF ни в Window Forms нет стандартного ListItem? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2011, 18:37 |
|
||
|
ListBox: Элемент и его ID.
|
|||
|---|---|---|---|
|
#18+
RegisteredUserКрррасотыщщща! Хера се что навыдумывали. Помнится в ASP.Net был простой ListItem для таких целей, а тут така гора букоф. Ладно! Пасибо на добром слове! Буду курить ваш код! П.С. (спрашиваю с опаской) А может все такие есть что-то проще? Есть конечно (override ToString()). Но это вас не научит писать хороший код =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2011, 18:49 |
|
||
|
ListBox: Элемент и его ID.
|
|||
|---|---|---|---|
|
#18+
RegisteredUserНа мой взгляд это красивее. Хотя не понятно почему ни в WPF ни в Window Forms нет стандартного ListItem?и чем это отличается от ListBox1.Items.Add("Элемент"); ? что такое "стандартный ListItem"? зачем он нужен в W Presentation F? (похоже, в этом топике каждый разговаривает с самим собой ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2011, 19:29 |
|
||
|
ListBox: Элемент и его ID.
|
|||
|---|---|---|---|
|
#18+
LRRegisteredUserНа мой взгляд это красивее. Хотя не понятно почему ни в WPF ни в Window Forms нет стандартного ListItem?и чем это отличается от ListBox1.Items.Add("Элемент"); ? что такое "стандартный ListItem"? зачем он нужен в W Presentation F? (похоже, в этом топике каждый разговаривает с самим собой ) Тогда задам пару вопросов: 1. Чем приложение на W Presentation F хуже приложения на Window Forms или на ASP.Net? 2. На W Presentation F можно писать бизнес-приложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2011, 09:50 |
|
||
|
ListBox: Элемент и его ID.
|
|||
|---|---|---|---|
|
#18+
RegisteredUserТогда задам пару вопросов LR(похоже, в этом топике каждый разговаривает с самим собой ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2011, 10:55 |
|
||
|
|

start [/forum/topic.php?fid=21&msg=37078047&tid=1442491]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 183ms |

| 0 / 0 |
