尝试绑定XAML数据时出现异常

时间:2014-05-01 12:39:14

标签: c# wpf xaml

我正在制作关于体育新闻的简单应用。问题是,然后我尝试绑定数据我得到这个错误:

  

未处理的类型' 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;
        }

有什么问题可以提出建议吗?

1 个答案:

答案 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,您最终会从基本标记中获得列表中的项目。