Автоматически - Нет. Теперь. Может быть, в будущем. Не тратьте время, напишите новый код bro.
Вы имеете , чтобы послушать и реагировать на ItemsGenerator.StatusChanged
Событие и ожидать, пока ItemContainers не сгенерированы, прежде чем можно будет получить доступ к ним с ContainerFromElement.
Поиск далее, я нашел поток на форуме MSDN от кого-то, у кого есть та же проблема. Это, кажется, ошибка в WPF, когда каждому установили GroupStyle. Решение состоит в том, чтобы плыть на плоскодонке доступ ItemGenerator после процесса рендеринга. Ниже код для Вашего вопроса. Я попробовал это, и это работает:
void ItemContainerGenerator_StatusChanged(object sender, EventArgs e)
{
if (listBox1.ItemContainerGenerator.Status
== System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated)
{
listBox1.ItemContainerGenerator.StatusChanged
-= ItemContainerGenerator_StatusChanged;
Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Input,
new Action(DelayedAction));
}
}
void DelayedAction()
{
var i = listBox1.ItemContainerGenerator.ContainerFromIndex(1) as ListBoxItem;
// select and keyboard-focus the second item
i.IsSelected = true;
i.Focus();
}
Попытайтесь анализировать VisualTree от 'вещи', пока Вы не достигнете типа
ListBoxItem