zoukankan      html  css  js  c++  java
  • c#数据绑定(3)——数据转化为信息

    文/嶽永鹏

      本文主要在数据绑定1和2中新增了DataSet对象,练习了如何在DataSet中添加表、关系和约束,同时本文也简要的介绍了如何将数据转化为信息。

    目标界面:

    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>
    View Code

    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;
            }
          
    View Code
  • 相关阅读:
    有点忙啊
    什么是协程
    HDU 1110 Equipment Box (判断一个大矩形里面能不能放小矩形)
    HDU 1155 Bungee Jumping(物理题,动能公式,弹性势能公式,重力势能公式)
    HDU 1210 Eddy's 洗牌问题(找规律,数学)
    HDU1214 圆桌会议(找规律,数学)
    HDU1215 七夕节(模拟 数学)
    HDU 1216 Assistance Required(暴力打表)
    HDU 1220 Cube(数学,找规律)
    HDU 1221 Rectangle and Circle(判断圆和矩形是不是相交)
  • 原文地址:https://www.cnblogs.com/YUEYongpeng/p/3504397.html
Copyright © 2011-2022 走看看