将数据绑定到ListView不起作用(Metro UI)

时间:2012-04-23 15:49:18

标签: c# xaml windows-8 microsoft-metro

当我将此代码放入我的XAML文件时:

<TextBlock Text="{Binding Name}" FontSize="16" Margin="15,0,0,0" />

它显示了Name值,但是当我尝试通过ListView显示时:

<ListView x:Name="ItemListView"
      ItemsSource="{Binding Items}"
      Margin="60,0,0,10">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                        <TextBlock Text="{Binding Name}"  
                       FontSize="24" Margin="5,0,0,0" TextWrapping="Wrap" />
                        <TextBlock Text="{Binding Artist}" 
                       FontSize="16" Margin="15,0,0,0"/>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

它没有出现:(可能有什么不对?

2 个答案:

答案 0 :(得分:0)

如果页面继承自LayoutAwarePage,就像从模板创建时一样,DataContext将设置为名为DefaultViewModel的属性。代码隐藏中暴露的属性不会被绑定。

答案 1 :(得分:0)

您正在查看示例中的两个不同对象。在文本框中,您正在查看datacontext中对象的名称,在列表视图中,您正在查看绑定到的每个项目的Items [x] .Name。如果需要从datacontext而不是Items集合引用Name,则需要将源绑定到Element而不是继承它。