ListBox是一个列表控件,列表中的每一个项可以是任意的对象(object),我们可以通过模板来定义每一个项的显示和数据
下面介绍ListBox的模板的定义,和数据绑定
1、定义一个ListBox控件,先看代码
<ListBox HorizontalAlignment="Left" Margin="10,10,0,84" Name="lbItemList" Width="440" > <ListBox.ItemTemplate> <DataTemplate> <Grid Margin="2,10,2,2" Height="auto"> <Grid.RowDefinitions> <RowDefinition Height="auto"/> <RowDefinition Height="auto"/> <RowDefinition Height="auto"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" Grid.Row="0" Text="学号:"/> <TextBlock Grid.Column="0" Grid.Row="1" Text="姓名:"/> <TextBlock Grid.Column="0" Grid.Row="2" Text="电邮:"/> <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding StuNo}"/> <TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding Name}"/> <Rectangle Fill="Blue" Width="200" Height="20" Grid.Column="1" Grid.Row="2" /> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
模板包含一个Grid控件,Grid控件内有5个TextBlock控件和一个矩形控件Rectangle,两个控件绑定了对象的两个属性StuNo,Name
接下来是给ListBox添加项,两个TextBlock文本控件显示的内容就是添加项的对应的两个属性的值
所以先要定义一个ListBox项的类
public class Student { public string StuNo { get; set; } public string Name { get; set; } }
接下来是创建对象,添加到ListBox中
定义一个变量list
System.Collections.ObjectModel.ObservableCollection<Student> list = new System.Collections.ObjectModel.ObservableCollection<Student>() list.Add(new Student { StuNo = "201201", Name = "Bomo" }); list.Add(new Student { StuNo = "201202", Name = "Tobi" });
把list绑定到ListBox中
this.lbItemList.ItemsSource = list;
看一下效果