2015-08-07 2 views
0

Я пытаюсь добавить пункты списка изображений ListView в WPF, как это:Как добавить записи списка в ListView в WPF?

сотовой

for (int i = 0; i < filtered_thumbnails.Count; i++) 
{ 
    Image tmp = new Image(); 
    tmp = filtered_thumbnails.ElementAt(i); 
    filtered_thumbnails.RemoveAt(i); 
    SlideTransitionsList.Items.Add(tmp);      
} 

Xaml

<ListView Background ="LightGray" Name="SlideTransitionsList" Grid.Row="10" Grid.Column="1" Grid.ColumnSpan="8" Grid.RowSpan="25" SelectionChanged="SlideTransitionsList_SelectionChanged" ItemsSource="{Binding}"> 
    <ListView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <UniformGrid Columns="1"/> 
      </ItemsPanelTemplate> 
    </ListView.ItemsPanel> 

</ListView> 

Но я получаю сообщение об ошибке говорящее что он не может добавлять элементы, потому что они уже являются дочерними элементами другого родителя. Поэтому я попытался удалить элемент из списка до добавления его в ListView, но он по-прежнему дает ту же ошибку. Может кто-нибудь мне помочь?

ответ

3

почему вы не можете связать filtered_thumbnails список, как следующее:

SlideTransitionsList.ItemsSource=filtered_thumbnails; 

Если вы итерируете filtered_thumbnails и присвоить каждый элемент отдельно, во время первой итерации источник изображения присвоенной коллекции, так во второй итерации источник элемента не пуст (он имеет первый назначенный элемент), поэтому он не позволяет изменять. но вы можете назначить список как ItemSource списку, указанному выше.

В обновлениях ListView Defenition отсутствует, поэтому я предлагаю вам определить, как следующее:

<ListView name="filtered_thumbnails" ItemsSource="{Binding}"> 
    <ListView .ItemTemplate> 
     <DataTemplate> 
      <Image Source="{Binding}" Stretch="Uniform"></Image> 
     </DataTemplate> 
    </ListView .ItemTemplate> 
</ListView> 
+0

Я просто попытался, но я получаю следующее: «Должен отключить указанный ребенка от текущего родителя Визуальная перед присоединением к новому родителю Visual Basic.» – Ivan

+0

Не могли бы вы высказать свой xamal-код? или включить его в вопрос? –

+0

см. Обновленный код – Ivan

0

, если вы используете привязки данных, описанные в другом решении изменить код на.

В противном случае опустить ItemsSource={Binding} в следующем примере

<ListView Background ="LightGray" Name="SlideTransitionsList" Grid.Row="10" Grid.Column="1" Grid.ColumnSpan="8" Grid.RowSpan="25" SelectionChanged="SlideTransitionsList_SelectionChanged" ItemsSource="{Binding}"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <Image Source="{Binding}" Stretch="Uniform"></Image> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
+0

Я сделал это, и он больше не выдает ошибку, но я не вижу никаких изображений, отображаемых в ListView – Ivan

Смежные вопросы