Как делает ItemContainerGenerator. ContainerFromItem работают со сгруппированным списком?

Автоматически - Нет. Теперь. Может быть, в будущем. Не тратьте время, напишите новый код bro.

29
задан Matt Hamilton 6 October 2008 в 22:52
поделиться

2 ответа

Вы имеете , чтобы послушать и реагировать на 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();
    }
38
ответ дан Tatiana Racheva 14 October 2019 в 08:44
поделиться

Попытайтесь анализировать VisualTree от 'вещи', пока Вы не достигнете типа

ListBoxItem
0
ответ дан Jobi Joy 14 October 2019 в 08:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: