------- Windows Phone 7手机开发.Net培训、期待与您交流! -------
 
ListBox和DataGrid是常用的控件之一,本次主要说说它两和数据绑定banding的那点事:
一、 ListBox的使用:
1. 简单使用 , 其子项为 ListBoxItem
InBlock.gif<ListBox Height= "100" Margin= "315,93,0,0" Width= "100">
InBlock.gif                        <ListBoxItem>
InBlock.gif                                <Button Content= "1.按钮" />
InBlock.gif                        </ListBoxItem>
InBlock.gif                        <ListBoxItem Content= "2.content"></ListBoxItem>          
                         <ListBoxItem>3.content</ListBoxItem>
InBlock.gif  </ListBox>
截图如下:

 
2. 给子项赋值
第一种可以通过 DataContent 来指定,第二种使用 ItemSource 来指定其数据源
对于使用第二种 ItemSource:
InBlock.gifList<Person> personList = new List<Person>() {    
InBlock.gif new Person{Age=18,Name= "Tom", Gender= true},
InBlock.gif new Person{Age=19,Name= "Jerry",Gender= true},
InBlock.gif new Person{Age=20,Name= "Lucy",Gender= false}
    };
InBlock.giflistBoxDS.ItemsSource = personList;
 
默认是把每一项的对象 ToString() 显示 ,可以设定 DisplayMemberPath 让其显示某个属性
selectedItem 获得的是选中行的对应的对象,如果没有选中行其值就是 null
InBlock.gif object selectedItem = listBoxDS.SelectedItem;
selectedValue 获得的是选中行对应的对象的” SelectedValuePath 标记的属性 ”的属性值,如果没有选中行其值就是 null
InBlock.gif object selectedValue = listBoxDS.SelectedValue;
代码说明:
前台 XAML 代码:
InBlock.gif    <ListBox Name= "listBoxDS" DisplayMemberPath= "Name" SelectedValuePath= "Age" HorizontalAlignment= "Left" Height= "100" Margin= "360,70,0,0" VerticalAlignment= "Top" Width= "100"/>
后台 cs 代码:
InBlock.gif                         object selectedItem = listBoxDS.SelectedItem;
InBlock.gif                        Person aa = (Person)listBoxDS.SelectedItem;                        
InBlock.gif                         object selectedValue = listBoxDS.SelectedValue;
InBlock.gif                        MessageBox.Show( "selectedItem:"+aa.Name+ "| selectedValue:"+selectedValue);
截图如下:

二、DataGrid 的使用:
 
指定 ItemSource 来显示数据源;该控件默认自动创建列 , 设置 AutoGenerateColumns false 则不自动生成列;向 Columns 中增加列,常用列类型为 :DataGridTextColumn;Header 设定标题; Binding 属性为列绑定的属性。
默认情况下 DataGrid 所有列默认是可编辑,如果 Mode=TwoWay ,修改数据后数据源也会变化 ;IsReadyOnly=true ,禁止自动创建列
自定义列: < DataGrid.Columns >
代码示例:
< DataGrid CanUserAddRows ="False" Name ="MydataGrid" AutoGenerateColumns ="False" HorizontalAlignment ="Left" Margin ="90,55,0,0" VerticalAlignment ="Top" >
                         < DataGrid.Columns >
                                 < DataGridCheckBoxColumn > </ DataGridCheckBoxColumn >
                                 < DataGridTextColumn Binding ="{Binding Name}" > </ DataGridTextColumn >
                                 < DataGridTextColumn Binding ="{Binding Score}" > </ DataGridTextColumn >
                                 < DataGridTextColumn Binding ="{Binding subject}" > </ DataGridTextColumn >
                                 < DataGridComboBoxColumn x:Name ="cbcData" SelectedValueBinding ="{Binding className}" > </ DataGridComboBoxColumn >
                         </ DataGrid.Columns >
                 </ DataGrid >
截图:

------- Windows Phone 7手机开发.Net培训、期待与您交流! -------