ListboxItem загружен несколько раз - PullRequest
0 голосов
/ 19 июня 2009

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

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

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

Спасибо!

Ответы [ 2 ]

1 голос
/ 20 июня 2009

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

0 голосов
/ 20 июня 2009

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

...