Я хочу заполнить ListView
элементами, если они соответствуют текущей странице, поэтому мне не нужно прокручивать. Для этого я хочу добавить элемент, проверить его высоту и, если он слишком большой, чтобы вписаться в оставшееся пространство, я хочу его удалить.
Мои вопросы:
В Windows 8.1 элемент управления ListView
не имеет ItemRealized
или ItemCreated
. Итак, когда нужно проверить размер контейнера?
Я пытаюсь получить размер через
UIElement container = (UIElement)ItemsListView.ContainerFromItem(obj);
double height = container.DesiredSize.Height;
Спасибо за вашу помощь!
К сожалению, я не думаю, что есть встроенное решение для разбитых на страницы коллекций, помимо TabControl, которое, вероятно, не то, что вы хотите.
Обычно разбиение на страницы - это что-то, что должно быть сделано на ViewModel/бизнес-стороне вещей, поэтому, если вы знаете размеры объектов раньше времени, вы можете сделать что-то вроде этого. Как разбивать ObservableCollection? или подкачки и сортировка MVVM, обеспечивая представление с правильным количеством элементов.
Если это должно быть более динамичным и гибким, это довольно хорошая статья о разбиении на страницы с использованием WrapPanel
в качестве WrapPanel
ItemsPanel для WrapPanel
ItemsControl
http://imduff.blogspot.com/2008/02/this-is-way-how-i -implemented-paging.html.