WPF多表關聯資料繫結
Northwind資料庫的三個表之間依次有一對多關係:
Customers-Orders-Order Details
要想在TreeView上表現這種關係,就需要HierarchicalDataTemplate.
Customers-Orders-Order Details
要想在TreeView上表現這種關係,就需要HierarchicalDataTemplate.
<Grid>
<Grid.Resources>
<DataTemplate x:Key="detailTemplate">
<Grid>
<Grid.ColumnDefinitions> <ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding UnitPrice}" />
<TextBlock Grid.Column="1" Text="{Binding Quantity}" />
<TextBlock Grid.Column="2" Text="{Binding Discount}" />
</Grid>
</DataTemplate>
<HierarchicalDataTemplate x:Key="orderTemplate" ItemsSource="{Binding Orders2OrderDetails}" ItemTemplate ="{StaticResource detailTemplate}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="150"></ColumnDefinition>
<ColumnDefinition Width="150"></ColumnDefinition>
<ColumnDefinition Width="150"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Path=OrderID}" />
<TextBlock Grid.Column="1" Text="{Binding Path=OrderDate}" />
<TextBlock Grid.Column="2" Text="{Binding Path=RequiredDate}" />
<TextBlock Grid.Column="3" Text="{Binding Path=ShippedDate}" />
<TextBlock Grid.Column="4" Text="{Binding Path=Freight}" />
</Grid>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="treeTemplate" ItemsSource="{Binding Customers2Orders}" ItemTemplate="{StaticResource orderTemplate}">
<TextBlock Text="{Binding CompanyName}" />
</HierarchicalDataTemplate>
</Grid.Resources>
<TreeView Grid.Column="0" Name="myTreeView" ItemsSource="{Binding}" ItemTemplate="{StaticResource treeTemplate}">
</TreeView>
</Grid>
---------------------------
.cs部分
public partial class Window1 : System.Windows.Window
{
public DataSet ds;
public Window1()
{
InitializeComponent();
ds = new DataSet();
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "server=(local);database=northwind;uid=sa;pwd=";
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
// Load Customers
SqlDataAdapter daCustomers = new SqlDataAdapter("select * from Customers",conn);
daCustomers.Fill(ds, "Customers");
// Load Orders
SqlDataAdapter daOrders = new SqlDataAdapter("select * from Orders", conn);
daOrders.Fill(ds, "Orders");
// Load OrderDetails
SqlDataAdapter daOrderDetails = new SqlDataAdapter("select * from [Order Details]", conn);
daOrderDetails.Fill(ds, "OrderDetails");
ds.Relations.Add("Customers2Orders", ds.Tables["Customers"].Columns["CustomerID"], ds.Tables["Orders"].Columns["CustomerID"]);
ds.Relations.Add("Orders2OrderDetails", ds.Tables["Orders"].Columns["OrderID"], ds.Tables["OrderDetails"].Columns["OrderID"]);
myTreeView.DataContext = ds.Tables["Customers"];
}
相關文章
- WPF/C#:資料繫結到方法C#
- sql 多表關聯刪除表資料SQL
- C#-WPF資料繫結基礎(一)C#
- WPF備忘錄六(資料繫結篇)
- WPF入門教程系列十八——WPF中的資料繫結(四)
- 【翻譯】WPF中的資料繫結表示式
- WPF 資料繫結之ValidationRule資料校驗綜合Demo
- Oracle\MS SQL Server的資料庫多表關聯更新UPDATE與多表更新OracleSQLServer資料庫
- WPF 繫結基礎
- WPF快速指導4:資料繫結之繫結方向與自定義轉換器
- MVVM模式和在WPF中的實現(二)資料繫結MVVM模式
- 生成批量刪除pd使用者多表資料(多表關聯)_dbms_stats
- C#WPF資料繫結模板化操作四步走C#
- 在WPF中一種較好的繫結Enums資料方法
- [WPF]資料繫結時為何會出現StringFormat失效ORM
- MySQL多表關聯查詢MySql
- MySQL 多表關聯刪除MySql
- Oracle 多表關聯刪除Oracle
- JPA多表關聯查詢
- DataSet多表關聯實現本地資料複雜的查詢
- 資料結構——關聯容器資料結構
- WPF使用MVVM(二)-命令繫結MVVM
- WPF技巧(1)非同步繫結非同步
- 資料繫結
- 資料庫多對多表關係資料資料庫
- 簡單資料繫結和複雜資料繫結
- ORACLE多表關聯UPDATE語句Oracle
- MySQL關聯多表更新的操作MySql
- ORACLE多表關聯UPDATE 語句Oracle
- 將WPF內部繫結的控制元件和資料拉取出來控制元件
- WPF使用MVVM(一)-屬性繫結MVVM
- WPF 介面如何繫結Command
- WPF 基礎MvvM繫結的使用MVVM
- 資料繫結原理
- 如何做多表關聯查詢
- mysql中的多表關聯查詢MySql
- MySQL為什麼不要多表關聯?MySql
- thinkphp中的多表關聯查詢PHP