目标界面:
XAML代码:
<Grid Margin=\"2\">
<Grid.RowDefinitions>
<RowDefinition Height=\"Auto\"/>
<RowDefinition Height=\"Auto\"/>
<RowDefinition Height=\"Auto\"/>
<RowDefinition />
</Grid.RowDefinitions>
<GroupBox Header=\"Customer\" Grid.Row=\"0\" Padding=\"5\">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width=\"Auto\"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row=\"0\" Grid.Column=\"0\" Text=\"CustomerID\" Margin=\"2\" HorizontalAlignment=\"Right\" VerticalAlignment=\"Center\"/>
<TextBox Grid.Row=\"0\" Grid.Column=\"1\" Margin=\"2\" Name=\"tbxCustomerID\" Text=\"{Binding Path=CID}\"/>
<TextBlock Grid.Row=\"1\" Grid.Column=\"0\" Text=\"CustomerName\" Margin=\"2\" HorizontalAlignment=\"Right\" VerticalAlignment=\"Center\"/>
<TextBox Grid.Row=\"1\" Grid.Column=\"1\" Margin=\"2\" Name=\"tbxCustomerName\" Text=\"{Binding Path=Name}\"/>
<Button Grid.Row=\"2\" Grid.Column=\"1\" Content=\"Add New Customer\" Margin=\"2\" Name=\"btnAddCustomer\" Padding=\"2\" Click=\"btnAddCustomer_Click\" />
</Grid>
</GroupBox>
<GroupBox Header=\"Order\" Grid.Row=\"1\" Padding=\"5\">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width=\"Auto\"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row=\"0\" Grid.Column=\"0\" Text=\"OrderID\" Margin=\"2\" HorizontalAlignment=\"Right\" VerticalAlignment=\"Center\"/>
<TextBox Grid.Row=\"0\" Grid.Column=\"1\" Margin=\"2\" Name=\"tbxOrderID\" Text=\"{Binding Path=OID}\"/>
<TextBlock Grid.Row=\"1\" Grid.Column=\"0\" Text=\"OrderName\" Margin=\"2\" HorizontalAlignment=\"Right\" VerticalAlignment=\"Center\"/>
<TextBox Grid.Row=\"1\" Grid.Column=\"1\" Margin=\"2\" Name=\"tbxOrderName\" Text=\"{Binding Path=Customer}\"/>
<TextBlock Grid.Row=\"2\" Grid.Column=\"0\" Text=\"Subtotal\" Margin=\"2\" HorizontalAlignment=\"Right\" VerticalAlignment=\"Center\"/>
<TextBox Grid.Row=\"2\" Grid.Column=\"1\" Margin=\"2\" Name=\"tbxSubtotal\" Text=\"{Binding Path=Subtotal}\"/>
<TextBlock Grid.Row=\"3\" Grid.Column=\"0\" Text=\"TaxRate\" Margin=\"2\" HorizontalAlignment=\"Right\" VerticalAlignment=\"Center\"/>
<TextBox Grid.Row=\"3\" Grid.Column=\"1\" Margin=\"2\" Name=\"tbxTaxRate\" Text=\"{Binding Path=TaxRate}\"/>
<Button Grid.Row=\"4\" Grid.Column=\"1\" Content=\"Add New Order\" Margin=\"2\" Name=\"btnAddOrder\" Padding=\"2\" Click=\"btnAddOrder_Click\" />
</Grid>
</GroupBox>
<ListView Name=\"lstDisplayCustomer\" ItemsSource=\"{Binding}\" Grid.Row=\"2\" Margin=\"2\" MinHeight=\"150\">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header=\"CustomerID\" DisplayMemberBinding=\"{Binding CID}\"/>
<GridViewColumn Header=\"CustomerName\" DisplayMemberBinding=\"{Binding Name}\"/>
<GridViewColumn Header=\"Total\" DisplayMemberBinding=\"{Binding OrderTotals}\" />
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
<ListView Name=\"lstDisplayOrder\" ItemsSource=\"{Binding}\" Grid.Row=\"3\" Margin=\"2\" MinHeight=\"150\">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header=\"OrderID\" DisplayMemberBinding=\"{Binding OID}\"/>
<GridViewColumn Header=\"Customer\" DisplayMemberBinding=\"{Binding Customer}\"/>
<GridViewColumn Header=\"Subtotal\" DisplayMemberBinding=\"{Binding Subtotal}\"/>
<GridViewColumn Header=\"TaxRate\" DisplayMemberBinding=\"{Binding TaxRate}\" />
<GridViewColumn Header=\"Total\" DisplayMemberBinding=\"{Binding Total}\"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
C# 代码:
DataSet business = NewData();
public MainWindow()
{
InitializeComponent();
}
private static DataSet NewData()
{
//-----build the parent table and add some data
DataTable customer = new DataTable(\"Customer\");
customer.Columns.Add(\"CID\", typeof(Int32));
customer.Columns.Add(\"Name\", typeof(string));
//-------build the child table and add some data.
DataTable orders = new DataTable(\"Order\");
orders.Columns.Add(\"OID\", typeof(int));
orders.Columns.Add(\"Customer\", typeof(Int32));
orders.Columns.Add(\"Subtotal\", typeof(decimal));
orders.Columns.Add(\"TaxRate\", typeof(decimal));
orders.Columns.Add(\"Total\",typeof(decimal),\"Subtotal*(1+TaxRate)\");
//-----Link the table within a Dataset.
DataSet business = new DataSet();
business.Tables.Add(customer);
business.Tables.Add(orders);
business.Relations.Add(customer.Columns[\"CID\"],orders.Columns[\"Customer\"]);
customer.Columns.Add(\"OrderTotals\" ,typeof(decimal),\"Sum(Child.Total)\");
return business;
}
private void btnAddCustomer_Click(object sender, RoutedEventArgs e)
{
//Vist datatable customer.
DataTable customer=business.Tables[\"Customer\"];
NewMember(customer);
lstDisplayCustomer.DataContext = customer;
}
private DataTable NewMember(DataTable table)
{
DataRow newRow = table.NewRow();
newRow[\"CID\"] = tbxCustomerID.Text;
newRow[\"Name\"] = tbxCustomerName.Text;
table.Rows.Add(newRow);
return table;
}
private DataTable NewMemberOrder(DataTable table)
{
DataRow newRow = table.NewRow();
newRow[\"OID\"] = tbxOrderID.Text;
newRow[\"Customer\"] = tbxOrderName.Text;
newRow[\"Subtotal\"] = tbxSubtotal.Text;
newRow[\"TaxRate\"] = tbxTaxRate.Text;
table.Rows.Add(newRow);
return table;
}
private void btnAddOrder_Click(object sender, RoutedEventArgs e)
{
//Vist datatable order.
DataTable order = business.Tables[\"Order\"];
NewMemberOrder(order);
lstDisplayOrder.DataContext = order;
}