在列表框WPF中获取标题,作者

时间:2013-06-04 14:05:08

标签: c# wpf data-binding datatemplate

我有两件事:

Title = new ObservableCollection<string>();                
Author = new ObservableCollection<string>();

我想将它们放入ListBox第一个标题1 并在作者1 下面,然后标题2 ... 。如何使用DataBindingListBox DataTemplate

执行此操作
<ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel>
            <Label Foreground="Blue" Content="{Binding Title}"></Label>
            <Label Foreground="Red" Content="{Binding Author}"></Label>
        </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>

2 个答案:

答案 0 :(得分:1)

是的,我会使用DataTemplate

我不会维护标题和作者的单独列表,而是创建一个如下对象:

public class Book
{
    public string Title {get; set;}
    public string Author {get; set;}
}

然后我会创建一个书籍集合

Books = new ObservableCollection<Book>();
Books.Add(new Book { Title="Dragons", Author="Bob"} );

最后,在Xaml中,我会将ItemsSource的{​​{1}}设置为Books并绑定到Title和Author属性,如下所示:

ListBox

答案 1 :(得分:0)

如果这不是问题,您可以将这些标题和作者保留在同一个类中。让我们说Book类,其中包含字符串Title和string author;

现在你有一个ObservableCollection<Book> MyBooks

     <ListBox ItemsSource="{Binding MyBooks}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                    <Label Foreground="Blue" Content="{Binding Title}"></Label>
                    <Label Foreground="Red" Content="{Binding Author}"></Label>
            </DataTemplate>
        </ListBox.ItemTemplate>
     </ListBox>