ItemContainerGenerator возвращает ноль, почему? - PullRequest
0 голосов
/ 20 января 2012
<ListBox BorderThickness="0" x:Name="PendingChatListBox" HorizontalContentAlignment="Stretch">
    <ListBox.ItemTemplate >
        <DataTemplate>
            <Button Height="40" Click="OpenChat_click" Content="{Binding BindsDirectlyToSource=True, Converter={StaticResource cPendingUnreadMessagesConverter}}"  HorizontalContentAlignment="Center" Background="Transparent" x:Name="OpenChatButton" Foreground="Blue"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
ObservableCollection<SideBarUnit> OpenChats = new ObservableCollection<SideBarUnit>();
this.PendingChatListBox.ItemsSource = OpenChats;


if (PendingChatListBox.Items.Count > 0)
{
    // WHY IS THIS OBJECT NULL?
    object obj = PendingChatListBox.ItemContainerGenerator.ContainerFromItem(PendingChatListBox.Items[0]); 
}

1 Ответ

3 голосов
/ 20 января 2012

Вероятно, из-за виртуализации элементы вне поля зрения не имеют сгенерированного контейнера для них (если панель элементов виртуализируется по своей природе; по умолчанию для ListBoxes и т.п.).чтобы получить контейнер тем же способом, ListBox еще не успел его создать.Для этого UI-поток должен бездействовать.

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