【WP7】关于ListBox控件的数据绑定

 

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;

    

    看一下效果 

     

 

 

posted @ 2012-11-07 09:57  bomo  阅读(1216)  评论(0编辑  收藏  举报