Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ListView прокрутка списка. 
:(
    Опции темы
hexzo
Дата 23.9.2011, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



Вообщем этот способ работает в нормальном месте.
Код

button1.Click += (s, e) =>
{
  listView1.ScrollIntoView(listView1.Items[listView1.Items.Count - 1]);
};


Но то же самое не работает в ненормальном месте, в селекторе шаблона для элемента списка
Код

RoutedEventHandler d2 = (sender, e) =>
{
  MainWindow.instance.getFocusedPanel().ScrollIntoView(MainWindow.instance.getFocusedPanel().Items[MainWindow.instance.getFocusedPanel().Items.Count - 1]);
}
facElem.AddHandler(TextBox.LoadedEvent, d2);

Судя по отладочным сообщением это место в коде обрабатывается, ListView нужный, количество элементов вроде бы верное. А список не прокручивается.

P.S. Поправка, это нормальный список прокручивается, а мой нет.

Это сообщение отредактировал(а) hexzo - 23.9.2011, 09:22
PM MAIL   Вверх
hexzo
Дата 23.9.2011, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



Проблема заключалась в том что у меня каким то образом список непонятно когда обновляется.

1) У меня добавляется элемент в ресурс данных для списка.
2) Затем я вызываю InotifyPropertyChanged();

Если вызвать прокрутку списка перед INotifyPropertyChanged, то естественно ничего не происходит.
Если после, то список прокручивается, что тоже логично.
А если вызывать прокрутку на TextBox.LoadedEvent, который является частью добавляемого в список элемента, то ничего не происходит. Почему?

Это сообщение отредактировал(а) hexzo - 23.9.2011, 09:47
PM MAIL   Вверх
Gvozdin
Дата 23.9.2011, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 9.8.2011
Где: Москва

Репутация: 8
Всего: 8



Виртуализация в ListView выключена?

Непонятно в какой момент у вас происходит TextBox.Loaded. С ресурсами тоже непонятно что происходит.
Какой сценарий вообще?

Если не в событии работает, то просто ListView не готов ещё может быть.
Как быстрое решение так же можно попробовать запустить ScrollIntoView через Dispatcher.BeginInvoke с приоритетом Background.
--------------------
http://gvozdin.ru
PM MAIL WWW   Вверх
hexzo
Дата 23.9.2011, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



Цитата

Виртуализация в ListView выключена?

В описании свойств не нашёл никакой виртуализации, что это?

Цитата
Какой сценарий вообще?

1) Добавление в ресурс_для_списка ещё одного элемента.
2) Вызов InotifyPropertyChanged для ресурса_для_списка.
3) потом происходит отрисовка текстбокса, который является частью визуального отображения элемента в списке.
4) когда отрисовка заканчивается, вызывается Loaded у текстбокса.

И если на этот Loaded повесить прокрутку списка, то она не работает.
PM MAIL   Вверх
Gvozdin
Дата 23.9.2011, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 9.8.2011
Где: Москва

Репутация: 8
Всего: 8



Виртуализация это грубо говоря VirtualizingStackPanel.IsVirtualizing, но оно тут не влияет.

Сценарий понятен. Я сделал такой же, у меня всё прокручивается.

Вот про это поподробнее:
Цитата(hexzo @  23.9.2011,  09:19 Найти цитируемый пост)
P.S. Поправка, это нормальный список прокручивается, а мой нет.


Какой "мой" список? smile
--------------------
http://gvozdin.ru
PM MAIL WWW   Вверх
hexzo
Дата 23.9.2011, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 30.1.2011

Репутация: нет
Всего: нет



Gvozdin
Цитата

Сценарий понятен. Я сделал такой же, у меня всё прокручивается.

Ну, значит это у меня что-то намудрено. Хз. как это отловить.  smile 

Цитата

Какой "мой" список?

Подвергнутый творческим мутациям. Короче тот список что в составе программы. smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.1068 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.