Доступ к дочернему элементу ListBoxItem - PullRequest
0 голосов
/ 12 октября 2009

У меня есть ListBox с DataTemplate, который выглядит следующим образом:

    <ListBox Name="listBox">
        <ListBox.ItemTemplate>
            <DataTemplate DataType="x:Type local:NumericIconDefinition">
                <Grid>
                    <ComboBox Name="IconComboBox"/>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

Я хотел бы получить экземпляр ComboBox , чтобы манипулировать им в коде. Я нашел сообщение в блоге, которое объясняет процесс получения ListBoxItem:

ListBoxItem lbi = (ListBoxItem)listBox.ItemContainerGenerator.ContainerFromIndex(IndexInListBox);

Но я не могу найти хороший способ доступа к Grid, а затем к экземплярам ComboBox в этом элементе. В идеале, основываясь на приведенном выше коде, я хотел бы сделать что-то вроде этого:

ComboBox cb = (ComboBox)lbi.GetChildByName("IconComboBox");

1 Ответ

1 голос
/ 12 октября 2009

Вы можете получить к нему доступ через метод FindName шаблона:

ComboBox cb = (ComboBox)listBox.ItemTemplate.FindName("IconComboBox", lbi);

Обратите внимание, что это можно сделать только после полной загрузки ListBoxItem, в противном случае шаблон еще не будет создан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...