![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Здравствуйте.
У меня такая задача: есть массив объектов Photo, каждый из них имеет такие проперти: 1. FileName - имя файла с картинкой 2. Name - ее имя 3. IsDownloaded - когда файл скачан из нета, выставляется в true Теперь я делаю ListBox и байндаю его с этим массивом. Пока все хорошо, вижу список картинок. Следующий шаг - это отобразить изображение из выбранного в списке объекта. Для этого использую PictureBox. И вот вопрос - как правильно связать данные чтобы для выбранного объекта PictureBox отображал актуальное состояние? Другими словами: 1. Фотка не закачана : отображаем некую картинку заглушку 2. Фотка закачана - отображаем ее. Картинки качаются в бекграунде, процесс может быть остановлен или запущен в любой время. Можно ли сделать такое через data binding, или придется извращаться? Это сообщение отредактировал(а) infarch - 29.8.2011, 16:03 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
Простой вариант (без учета того что память может кончится): Надо сделать обычный класс, содержащий string Name и Bitmap Photo. По умолчанию Photo указывает на некий static Bitmap DefaultPhoto (инициализируем в конструктор). Далее там качаем. bool IsDownloaded превращается в Photo == DefaultPhoto . В этом классе реализуем INotifyPropertyChanged интерфейс. Далее берем коллекцию, реализующую INotifyCollectiionChanged. Например BindingList<T>. Далее: биндирг производит стандартными средствами. Лист биндим на нашу коллекцию, а картинку на Current навигатора. И вуаля - всё как надо... Это сообщение отредактировал(а) jonie - 29.8.2011, 18:21 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Ха, я уже практически так и сделал! Рад слышать что не изобрел велосипед, спасибо.
Только вот со списком несколько неувязка - пришлось использовать CheckedListBox, а у него нет свойства DataSource так что заполняю его в ручную. В моем случае это не страшно так как колличество фоток не меняется. Но всетаки интересно нельзяли забайндать CheckedListBox на список? |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |