c#数据绑定之数据转化为信息的示例

前端技术 2023/09/09 C#

目标界面:

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;
        }

本文地址:https://www.stayed.cn/item/25501

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。