溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

集合對象的數(shù)據(jù)綁定(1)

發(fā)布時間:2020-06-20 02:45:49 來源:網(wǎng)絡(luò) 閱讀:290 作者:windows_phone 欄目:開發(fā)技術(shù)

 集合對象的數(shù)據(jù)綁定

在集合對象的數(shù)據(jù)綁定中,

(1)       綁定源可以是任意實現(xiàn)了枚舉接口的集合類對象

(2)       而綁定目標(biāo)一般是ItemControl類型UI元素。

在目前的Windows Phone7中,受支持的ItemControl控件只有一個ListBox。

當(dāng)然,也可以直接使用ItemControl控件也是可以的。

1、  顯示單列數(shù)據(jù)

原理:ItemControl的兩個屬性

ItemsSource

指示綁定源,提供要顯示的集合數(shù)據(jù),為一個可枚舉對象。注意:其綁定結(jié)果會受當(dāng)前數(shù)據(jù)上下文有關(guān)(即上級元素的DataContext屬性)。

DisplayMemberPath

指示要綁定的屬性名稱或路徑。默認為空字符串,對應(yīng)綁定源中元素的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#代碼中創(chuàng)建一個部門列表

public MainPage()

{

InitializeComponent();  

    ObservableCollection<Department> departments = new ObservableCollection<Department>

    {

      new Department{DepName="技術(shù)部"},

      new Department{DepName="商務(wù)部"}

    };

    lbDepartment.ItemsSource = departments;

}

(4)       XAML代碼中

<ListBox Height="257" Name="listBox1" VerticalAlignment="Top">

<ItemsControl Name="lbDepartment" DisplayMemberPath="DepName" ></ItemsControl>

</ListBox>

實現(xiàn)效果就是

 集合對象的數(shù)據(jù)綁定(1)

 

2、           使用自定義數(shù)據(jù)模板定制樣式

簡單的單列數(shù)據(jù)綁定顯然無法滿足正常的開發(fā)需求。

(1)       XAML代碼:

<StackPanel Height="50" HorizontalAlignment="Center" Name="stackPanel1" Width="480" VerticalAlignment="Top" Orientation="Horizontal">      
<TextBlock Name="textBlock1" Text="工號" VerticalAlignment="Top" Width="120" />
<TextBlock Name="textBlock2" Text="姓名" VerticalAlignment="Top" Width="120" />
<TextBlock Name="textBlock3" Text="性別" VerticalAlignment="Top" Width="120" />
<TextBlock Name="textBlock4" Text="出生年份" />
</StackPanel>
<ListBox Name="listEmployees" Margin="0,40" ItemsSource="{Binding}" VerticalAlignment="Top" Height="500" >

      <ListBox.ItemTemplate>
          <DataTemplate>

            <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;

}

效果圖:

 集合對象的數(shù)據(jù)綁定(1)

注意:此處使用模板的方式是直接嵌套在ListBox中,但在很多情況下為了方便復(fù)用通常會將數(shù)據(jù)模板保存在資源字典中,然后通過ListBoxItemTemplate屬性引用。

 


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI