如何實現具有層次結構的 TreeView (WPF/TreeView/Style/Template)

爲應用程序提供數據支持 (DataContext)

1、建立外部數據表

下圖所示的表是在 SQL2005 中生成的,使用了自關聯(Hibernate) dept_id -> parent_id。

type 字段用於區別省會、城市和城區,以便進一步說明 DataTrigger 的使用方法。

data table

image4


友情提示:

作爲示例,表中僅建立了 4 個字段,數據也換成了地名。該架構具有一定的侷限性,不能描述較爲複雜的層次結構數據。

例如: 不同城市中可能有同名的城區,同一種物料會使用在不同的產品上,若上述情況使用此架構,則會出現同一城區或物料出現多條記錄的情況。較爲科學的架構,請參考 SQL2005 中自帶的示例數據庫 AdventureWorks。其中 Prodution.Product 和 Production.BillOfMaterials 更好的說明了物料與產品間的關係、層次、設計更改等信息。


2、在程序中添加 LINQ to SQL 類

前提是你已經建立了一個 WPF 應用程序,這個可不能忘記哦!

a、添加新項

image5


b、成功添加了 dbml 設計器

image


c、點擊右側“服務器資源管理器”,添加“數據連接”

image


提示: 添加完成後,新的連接信息將保存在 app.config 中,如果要修改鏈接名稱,請在 Properties\Settings.settings 中修改,以上2個文件可以在“解決方案資源管理器”中找到。


d、展開節點,將表拖拽到 dbml 設計器左側的空白區域,設計器將根據表結構自動生成一個類,而且關聯信息也將被自動生成。

image


e、分別選擇表、字段、關聯,並在“屬性”窗口中爲其重命名,改變名稱是爲了在程序中更方便的訪問數據類,不會影響程序訪問數據源。

提示: 關聯屬性的 “父屬性/子屬性” 名稱請分別設置爲 “Parent/Children”,子屬性將作爲 ItemsSource 在 XAML 中被調用。

image

提示: 屬性設置完畢並保存後,可以打開 *.designer.cs 查看自動生成的類代碼。

警告: 千萬不要隨意修改 designer.cs 文件中代碼,否則你會大哭的哦,切記!


此時,數據源以及在程序中用於訪問數據源的 LINQ to SQL 類算是添加完成了。

下一節將介紹如何把 “數據 (Data)” 以及 “界面 (UI)” 關聯起來的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章