2009-06-19 7 views
0

У меня есть триггер на раскадровке для моего списка, где триггер «Loaded». Похоже, что каждый раз, когда свиток списков, элемент получает событие «Загружено». Я действительно хочу, чтобы раскадровка запускалась один раз, когда отображается listboxitem.ListboxItem загружен несколько раз

Я предположил, что событие Loaded запускается только один раз.

Любая помощь будет отличной.

Спасибо!

ответ

1

Я не уверен, что вы можете запустить его только один раз или нет. В большинстве случаев ListBox использует VirtualizingStackPanel для своего ItemsPanel. Это приводит к тому, что только ListBoxItems, которые видны (или почти видимы), будут созданы и добавлены в визуальное дерево. Когда вы прокрутите прочь, элементы, которые были видны, будут уничтожены, а затем создаются новые видимые элементы. Каждый раз, когда вы просматриваете элемент, он будет воссоздан, и, таким образом, его событие Loaded будет срабатывать.

+1

VirtualizingStackPanel является элементом ItemsPanel по умолчанию для ListBox. – micahtan

0

Вы можете попробовать установить VirtualizingStackPanel.IsVirtualizing = "False" для вашего списка, который должен это сделать. Имейте в виду, что это потребляет больше ресурсов, поскольку элементы всегда будут там независимо от того, видите ли вы их в списке или нет. Не должно быть проблем, хотя если у вас слишком много предметов.

Смежные вопросы