您好,登錄后才能下訂單哦!
集合對象的數據綁定
在集合對象的數據綁定中,
(1) 綁定源可以是任意實現了枚舉接口的集合類對象
(2) 而綁定目標一般是ItemControl類型的UI元素。
在目前的Windows Phone7中,受支持的ItemControl控件只有一個ListBox。
當然,也可以直接使用ItemControl控件也是可以的。
1、 顯示單列數據
原理:ItemControl的兩個屬性
ItemsSource |
指示綁定源,提供要顯示的集合數據,為一個可枚舉對象。注意:其綁定結果會受當前數據上下文有關(即上級元素的DataContext屬性)。 |
DisplayMemberPath |
指示要綁定的屬性名稱或路徑。默認為空字符串,對應綁定源中元素的ToString()值。 |
(1) 附帶Employee.cs代碼
public class Employee { public int Number { get; set; } public String Name { get; set; } public String Age { get; set; } public int BirthYear { get; set; } } |
(2) 附帶Department.cs代碼
public class Department:Employee { public String DepName { get; set; }//部門名稱 public ObservableCollection<Employee> employees { get; set; }//員工列表 } |
(3) 在C#代碼中創建一個部門列表
public MainPage() { InitializeComponent(); ObservableCollection<Department> departments = new ObservableCollection<Department> { new Department{DepName="技術部"}, new Department{DepName="商務部"} }; lbDepartment.ItemsSource = departments; } |
(4) XAML代碼中
<ListBox Height="257" Name="listBox1" VerticalAlignment="Top"> <ItemsControl Name="lbDepartment" DisplayMemberPath="DepName" ></ItemsControl> </ListBox> |
實現效果就是
2、 使用自定義數據模板定制樣式
簡單的單列數據綁定顯然無法滿足正常的開發需求。
(1) XAML代碼:
<StackPanel Height="50" HorizontalAlignment="Center" Name="stackPanel1" Width="480" VerticalAlignment="Top" Orientation="Horizontal"> <ListBox.ItemTemplate> <StackPanel > <TextBlock Text="{Binding Number}" /> <TextBlock Text="{Binding Name}" /> <TextBlock Text="{Binding Age}" /> <TextBlock Text="{Binding BirthYear}" /> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> |
(2) XAML代碼
public ZiDingYi() { InitializeComponent(); ObservableCollection<Employee> employees=new ObservableCollection<Employee> { new Employee{Number=2000,Name="張三",Age=10}, new Employee{Number=2001,Name="李四",Age=11}, new Employee{Number=2002,Name="yz",Age=12} }; listEmployees.DataContext = employees; } |
效果圖:
注意:此處使用模板的方式是直接嵌套在ListBox中,但在很多情況下為了方便復用通常會將數據模板保存在資源字典中,然后通過ListBox的ItemTemplate屬性引用。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。