2014-05-01 5 views
1

저는 스포츠 뉴스에 대해 간단한 응용 프로그램을 만들고 있습니다. 여기XAML 데이터를 바인딩 할 때 예외가 발생했습니다.

An unhandled exception of type 'System.InvalidOperationException' occurred in PresentationFramework.dll Additional information: Items collection must be empty before using ItemsSource.

그리고 XAML 코드 :

<ListView Name="ListBoxWithNews" ItemsSource="{Binding News}" Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" Grid.ColumnSpan="2"> 
      <StackPanel Orientation="Horizontal"> 
       <Image Source="{Binding imageURL}" Width="75" Height="75" /> 
       <StackPanel> 
        <TextBlock Text="{Binding Title}" Width="200" /> 
        <TextBlock Text="{Binding Body}" Width="200" /> 
       </StackPanel> 
      </StackPanel> 
     </ListView> 

나는 데이터 컨텍스트 이런 식으로 설정합니다

private void EnglandNews_Click(object sender, RoutedEventArgs e) 
     { 
      NewsModelView model = new NewsModelView("http://topsport.ibox.bg/rss_18"); 
      this.DataContext = model; 
     } 
을 문제는 그 데이터를 바인딩하려고 나는이 오류가 있다는 것입니다

문제의 원인을 알려주십시오.

+0

응용 프로그램을 처음 실행하면 ListBoxWithNEws가 News라는 바인딩을 찾고 있는데, 그 이유는 오류입니다. – jomsk1e

+0

뉴스 속성 선언을 변경해야합니다. 선언 방법을 공유 할 수 있습니다. –

답변

1

당신은 DataTemplate에서 그 StackPanel을 포장해야합니다

<ListView Name="ListBoxWithNews" ItemsSource="{Binding News}" Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" Grid.ColumnSpan="2"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <Image Source="{Binding imageURL}" Width="75" Height="75" /> 
       <StackPanel> 
        <TextBlock Text="{Binding Title}" Width="200" /> 
        <TextBlock Text="{Binding Body}" Width="200" /> 
       </StackPanel> 
      </StackPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

사용하지 않고 ItemTemplate.DataTemplate 실제로 기본 마크 업에서 목록의 항목을 가지고 결국.

+0

데이터 템플릿은 ListView.ItemTemplate 속성에 중첩되어야합니다. –

+0

@AdiLester, 많은 친구에게 감사드립니다. 죄송 해요! –

관련 문제