Контейнер внутри Datatemplate внутри Listbox равен нулю, если список слишком длинный - PullRequest
0 голосов
/ 02 декабря 2010

У меня есть список с табличкой данных с элементами управления Image и TextBlock внутри.Я хочу получить ImageControl, сначала получив Grid Container

<ListBox x:Name="NewsList" Margin="0,0,20,0" SelectionChanged="NewsList_SelectionChanged" />    
<DataTemplate>
            <Grid Width="400" Height="89">
            <Image HorizontalAlignment="Left" Width="64" x:Name="ImageThumbnail" Height="64" VerticalAlignment="Top" Margin="0,10,0,0" Source="http://vnexpress.net/Files/Subject/3B/A2/3B/15/top.jpg"/>
                <TextBlock Text="{Binding Title}" Margin="78,0,8,0" TextWrapping="Wrap" FontSize="26.667" Height="74" VerticalAlignment="Top"/>
            </Grid>
        </DataTemplate>
</ListBox>
for (int i = 0; i < feeds.Count; i++)
    var containerItem = list.ItemContainerGenerator.ContainerFromIndex(i);

И когда я устанавливаю NewsList.Items = Feeds with feeds.Count больше 23, некоторые из containerItem равны нулю.Если оно меньше 23, я никогда не получаю нулевой контейнер.

Кто-нибудь знает, в чем причина и как я могу это исправить.Если у нас есть другой способ получить imageControl

Ответы [ 2 ]

0 голосов
/ 11 декабря 2010

Мой ответ - написать новый ImageConverter, который мы можем вставить в тег в файле xaml, мне больше не нужно иметь дело с VisualTree, поэтому он работает

0 голосов
/ 03 декабря 2010

Одна вещь, которую я вижу, это то, что ваш xaml мне не подходитесли это вам полностью поможет или нет.

...