我正在制作关于体育新闻的简单应用。问题是,然后我尝试绑定数据我得到这个错误:
未处理的类型' System.InvalidOperationException' 发生在PresentationFramework.dll中的附加信息:项目 在使用ItemsSource之前,collection必须为空。
这是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 :(得分:1)
您需要将StackPanel
包裹在DataTemplate
:
<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
,您最终会从基本标记中获得列表中的项目。