1. 程式人生 > >Expression Blend實例中文教程(6) - 項目控件和用戶交互控件快速入門

Expression Blend實例中文教程(6) - 項目控件和用戶交互控件快速入門

ima 生成 eight blank TreeView 效果 ring mage col

前文我們曾經描述過,微軟把Silverlight控件大致分為三類:

第一類: Layout Controls(布局控件)

第二類: Item Controls (項目控件)

第三類: User Interaction Controls(用戶交互控件)

我們已經對第一類布局控件在Blend中的應用進行了描述。本文將介紹Item Controls,也稱為項目控件;和User Interaction Controls,也稱為用戶交互控件.

Item Controls (項目控件)

在實際項目中,我們經常會遇到處理數據集合或者數組的情況,而處理數據集合最好的方法就是使用“Binding”綁定。正如您所知道的,在ASP.NET中,就已經應用了“Binding”綁定的概念,其優勢在於節省了大量的開發時間,降低了開發難度。而在Silverlight中微軟加強了Binding功能,並且使用Item Controls(項目控件)來顯示和處理數據集合和數組類型數據。Silverlight提供了四種標準項目控件,分別是ListBox,ComboBox,TabControl和TreeView。 下面,我將演示在Blend中如何使用這些控件。

根據上文描述,使用Item Controls前,首先需要綁定數據,而綁定數據需要有相關數據源,所以,我們需要先定義數據源。本文依舊使用前文例程SilverlightBlendDemo,在Silverlight客戶端創建一個新的Usercontrol,ItemControlsDemo.xaml.

技術分享圖片

創建完畢後,主設計窗口將呈現ItemControlsDemo的UI設計界面,看右邊屬性欄,有三個Tab,其中包含“Data”,選中Data,

技術分享圖片

該窗口允許用戶在Blend中定義數據源,導入XML格式數據,定義外部數據源等功能。

技術分享圖片

技術分享圖片

首先,我們選擇“Define New Sample Data..",定義一個新的例程數據源,名字使用默認SampleDataSource。其中,Define in是指定該數據源的應用訪問,默認為整個項目,當然,如果作為測試,也可以指定該數據源僅應用於當前打開文檔。這裏,我們使用默認設置。

技術分享圖片

創建完成後,在右邊Data數據欄中,會出現SampleDataSource選項,而在該數據源下包含一個集合“Collection”,該集合默認有兩個屬性“Property1”和“Property2”。在項目應用中,可以根據需要再添加新的屬性。

技術分享圖片

由於我們添加的是例程數據源,Blend已經在該數據源中添加了例程數據,根據需求,我們可以對例程數據進行修改。首先選擇Collection,然後點擊技術分享圖片編輯例程數據,

技術分享圖片

技術分享圖片

可以看到,Blend生成的默認例程數據,這裏我們可以進行簡單修改,Property1默認類型String,Property2默認類型為Boolean,這裏我想修改Property2為String,

技術分享圖片

類型修改為String,還可以修改該數據列的具體的格式:

技術分享圖片

為了方便演示我修改兩個默認屬性名,分別為,“網站”和“網址”

技術分享圖片

點擊OK,例程數據建立完成。

下面,看看在Blend中如何使用Item Controls裝載數據源。首先我們測試ListBox:

在左邊工具欄,選擇ListBox控件,然後在ItemControlsDemo.Xaml設計頁面,畫一個ListBox。

技術分享圖片

技術分享圖片

然後從右邊Data欄中,選中Collection,拖拽到ListBox空白處,ListBox即可自動綁定例程數據。

技術分享圖片

技術分享圖片

Blend會自動生成XAML代碼,對例程數據進行綁定。

技術分享圖片 1 <UserControl.Resources>
2 <DataTemplate x:Key="ItemTemplate">
3 <StackPanel>
4 <TextBlock Text="{Binding 網址}"/>
5 <TextBlock Text="{Binding 網站}"/>
6 </StackPanel>
7 </DataTemplate>
8 </UserControl.Resources>
9 <Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource SampleDataSource}}">
10 <ListBox HorizontalAlignment="Left" Margin="48,45,0,43" Width="249" ItemTemplate="{StaticResource ItemTemplate}" ItemsSource="{Binding Collection}"/>
11 </Grid> 技術分享圖片

這樣就輕松實現了ListBox綁定例程數據。

再試試ComboBox,從左邊工具框選擇ComboBox,在設計頁面畫一個ComboxBox,

技術分享圖片

仍舊按照以上方法,拖拽Collection到ComboBox上,即可看到數據已經進行綁定。

技術分享圖片

技術分享圖片

同樣,在Treeview中,也可以正常綁定。

技術分享圖片

在數據綁定的時候,Data欄目,會有黃色的框,表示“Data Binding”。

技術分享圖片

具體的定義,在Property屬性欄中查看:

技術分享圖片

以上則是使用Blend對Item Controls進行數據綁定的方法。由於文本主要講述Blend應用,這裏,就不再對Item Controls的屬性進行贅述,如果您有問題可以留言給我。

User Interaction Controls(用戶交互控件)

Silverlight控件中,User Interaction Controls是面向用戶行為交互,該控件和ASP.NET和WPF中的大部分交互控件相同,用法也基本相似。其選取和設計,和前文Item Controls相同,這裏就不再贅述。需要註意的是,不同的交互控件,具有不同的交互事件,從而達到不同的交互效果。在後文,如果有需要,我將詳細解釋說明。

技術分享圖片

技術分享圖片

本節源代碼下載

Expression Blend實例中文教程(6) - 項目控件和用戶交互控件快速入門