我有一个包含ObservableCollection的ObservableCollection:
public class BooksDetailModel
{
public BookModel Book{ get; set; }
public ObservableCollection<AuthorModel> Authors { get; set; }
}
ViewModel中的属性:
public ObservableCollection<BooksDetailModel> Books { get; set; }
我想在ListBox中呈现这样:
第一册
第二册
等
顶级绑定很容易,但我遇到了内部子集合的问题。
到目前为止XAML:
<ListBox ItemsSource="{Binding Books}" BorderBrush="{x:Null}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Book.Name}" FontSize="12" FontWeight="Bold" />
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding ???, Path=Author.Name}" FontSize="10" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
对???的任何建议 - 将内部列表框项目源相对绑定到父项目源的作者集合。
答案 0 :(得分:4)
您应该将内部ItemsSource
的{{1}}绑定到ListBox
属性。 Authors
中的绑定将只是绑定到作者的DataTemplate
属性:
Name