我们说我有这种书类
class book{
public List<string> Authors { get; set; }
}
并且有一个像这样的图书经理
class bookManager{
private List<book> booksCollection;
public bookManager(){
//Populate booksCollection with data
}
public book getOneBook(int index){
//return book with book.index = index
}
}
我试图使用Binding将作者列表绑定到ListView中。但是ListView上似乎没有数据出现。这是我的xaml的样子
<ListView ItemsSource="{Binding selectedBook.Authors}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe UI" FontSize="20" Text="●" Margin="0,0,5,0" />
<TextBlock FontFamily="Segoe UI" FontSize="20" Text="{Binding}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
和C#恐惧xaml看起来像这样
private book selectedBook;
public bookDetailPage(){
this.selectedBook = new bookManager().getOneBook(selectedIndex);
}
奇怪的是,当我使用x:Bind时,它起作用了。这里使用x:Bind
的xaml文件<ListView ItemsSource="{x:Bind selectedBook.Authors}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="x:String">
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Segoe UI" FontSize="20" Text="●" Margin="0,0,5,0" />
<TextBlock FontFamily="Segoe UI" FontSize="20" Text="{x:Bind }" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
有关信息,请使用VS2015。