如何实现具有层次结构的 TreeView <二> (WPF/TreeView/Style/Template)

来源:互联网 发布:中国网络集成公司排名 编辑:程序博客网 时间:2024/06/06 12:45

为应用程序提供数据支持 (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)” 关联起来的方法。