![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
CasperSC |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: 1 Всего: 1 |
Всем привет. Ситуация такая: Есть UserControl в нём ListView. Я сделал DataTemplate для GridViewColumn.CellTemplate. В итоге получилось что-то вроде плейлиста, как вконтакте, то есть в каждой ListViewItem есть слайдер. Я хочу при воспроизведении трека, чтобы я мог управлять этим Slider'ом. Как к нему получить доступ? Например при событии SelectionChanged. Вообще что-то не въеду никак, как же сделать взаимодействие с Slider?
На одном форуме посоветовали глядеть как сделано в примере и сделать у себя также:
Но почему-то эта конструкция иногда возвращает null (комментарии в коде поясняют ситуацию, так что лучше их прочитать)?
Скриншот! ![]() Кстати о скриншоте. В момент срабатывания точки останова sliderIndex равен 0, а как видно на скриншоте под индексом 0 есть объект. То есть мы ищем ListViewItem как я понял через объект передаваемый в параметрах, но как опять же видно на скриншоте метод вернул null. Это сообщение отредактировал(а) CasperSC - 6.8.2011, 14:25 |
||||||
|
|||||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
Тут видимо играет роль виртуализация.
В случае с деревом с виртуализацией правильная последовательность поиска элемента описана в MSDN http://msdn.microsoft.com/en-us/library/ff407130.aspx#Y486 Можно по аналогии перенести к вам. Не так просто в этом разобраться конечно, но уметь работать с виртаулизацией надо уметь ![]() Алгоритм собственно сводится к запросу BringIntoView и ожидания пока ItemContainerGenerator сгенерирует элемент. Хотя странно что в случае выбора элемента самим пользователем такое может происходить. ContainerFromItem возвращает null в случае клика пользователем или вы тестируете? --------------------
http://gvozdin.ru |
|||
|
||||
CasperSC |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: 1 Всего: 1 |
Нет при программном выборе первого элемента например в большом списке, когда доиграл последний в списке трек, то надо переключиться на первый. Я просто отключил виртуализацию. Сейчас посмотрю ваш вариант и может применю его.
|
|||
|
||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
Сделали VirtualizingStackPanel.IsVirtualizing=False на ListBox?
Без виртуализации заработало? Это сообщение отредактировал(а) Gvozdin - 9.8.2011, 20:13 --------------------
http://gvozdin.ru |
|||
|
||||
CasperSC |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: 1 Всего: 1 |
Нет, немного по другому:
|
|||
|
||||
Gvozdin |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 172 Регистрация: 9.8.2011 Где: Москва Репутация: 8 Всего: 8 |
Тоже вариант %)
--------------------
http://gvozdin.ru |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |