ListView绑定无法正常工作

时间:2016-02-23 23:03:34

标签: c# xaml

我们说我有这种书类

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>
  1. 我的Binding方法在哪里出错?
  2. 有人可以解释一下我对x:Bind vs Binding方法的解释吗?
  3. 有关信息,请使用VS2015。

0 个答案:

没有答案