将列表绑定到WPF中的ListBox

时间:2016-06-27 07:11:29

标签: wpf data-binding itemssource

我有一个名为Person的课程,只有姓名,年龄和性别属性。我也有5个人List<Person>(现在硬编码,但不相关)。我想通过XAML将它绑定到ListBox,因此它为每个属性都有三个TextBlock:

<ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel>
            <TextBlock Text="{Binding Path=name}" />
            <TextBlock Text="{Binding Path=gender}" />
            <TextBlock Text="{Binding Path=age}" />
        </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>

问题在于我不知道将什么用作数据上下文或项目源或其他什么。 有什么想法吗?

1 个答案:

答案 0 :(得分:7)

<ListBox ItemsSource="{Binding People}">
    <ListBox.ItemTemplate>
         <DataTemplate>
             <StackPanel>
                 <TextBlock Text="{Binding Path=name}" />
                 <TextBlock Text="{Binding Path=gender}" />
                 <TextBlock Text="{Binding Path=age}" />
             </StackPanel>
         </DataTemplate>
    </ListBox.ItemTemplate>

并在您的代码后面(ViewModel):

public ObservableCollection<Person> people = new ObservableCollection<Person>();
public ObservableCollection<Person> People { get { return people; } }

您可以在绑定中省略Path=,因为它是默认属性