在 WPF C# 中将单个项添加到数据网格

本文关键字:数据 数据网 网格 添加 单个项 WPF | 更新日期: 2023-09-27 18:37:10

我有一个数据库,表名"Product_Master",列标题为"产品ID,产品代码,产品名称,产品描述,着陆价格,销售价格,股票,产品类别"。

我的 wpf 窗口中有一个数据网格。

我能够填充数据网格将数据库中的所有值。

代码如下。

        SqlCeCommand com = new SqlCeCommand("SELECT ProductCode FROM Products_Master WHERE ProductName =('" + txtAutoProductName.Text + "') OR ProductCode = ('" + txtProductCode.Text + "')", con);
        try
        {
            SqlCeDataAdapter da = new SqlCeDataAdapter();
            da.SelectCommand = com;
            DataTable dt = new DataTable();
            da.Fill(dt);
            BindingSource bSource = new BindingSource();
            bSource.DataSource = dt;
            dgrdBilling.ItemsSource = bSource;
            da.Update(dt);
        }
        catch (Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.Message, System.Windows.Forms.Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

我想使用列名称"编号、产品代码、产品名称、数量、税金、总计"自定义我的数据网格,并希望从不同的表中添加单个值。

如何做同样的事情。

下面添加

    private void txtAutoProductName_TextChanged(object sender, EventArgs e)
    {
        SqlCeCommand com = new SqlCeCommand("SELECT * FROM Products_Master WHERE ProductName =('" + txtAutoProductName.Text + "') OR ProductCode = ('" + txtProductCode.Text + "')", con);
        try
        {
            SqlCeDataAdapter da = new SqlCeDataAdapter();
            BindingSource bSource = new BindingSource();
            DataTable dt = new DataTable();
            DataRow newRow = dt.NewRow();
            da.SelectCommand = com;
            da.Fill(dt);
            bSource.DataSource = dt;
            //dgrdBilling.ItemsSource = bSource;
            dgrdBilling.ItemsSource = dt.DefaultView;
            //dgrdBilling.Items.Add(bSource);
            da.Update(dt);
            newRow["ProductName"] = txtAutoProductName.Text;
            newRow["ProductCode"] = bSource;
            dt.Rows.Add(newRow);
        }
        catch (Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.Message, System.Windows.Forms.Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

在 WPF C# 中将单个项添加到数据网格

尝试在 .xaml 中进行自定义:

首先设置自动生成列,然后使用适当的绑定添加所需的列。

DataGrid ItemsSource="{Binding Products}" AutoGenerateColumns="False" >
<DataGrid.Columns>
     <DataGridTextColumn Header="Name" Binding="{Binding Path=Column_name_in_table}"/>
</DataGrid.Columns>

这用于在代码隐藏 .xaml 中添加行.cs:

DataRow newRow = dt.NewRow();
newRow["ProductID"] = txtBox1.Text;
newRow["ProductCode"] = txtBox2.Text;
      .
      .
      .
dt.Rows.Add(newRow);
如果要在数据

表中收到有关更改的通知数据网格,请将网格 *ItemsSource* 设置为数据视图dt。默认视图()

下面是如何使用 DataGrid 的精彩教程。

http://wpftutorial.net/DataGrid.html

如果要定义自定义列,请设置 AutoGenerateColumns="False"。

<DataGrid ItemsSource="{Binding Customers}" AutoGenerateColumns="False" >
    <DataGrid.Columns>
        <DataGridTemplateColumn Header="Image" Width="SizeToCells" IsReadOnly="True">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Image Source="{Binding Image}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

在此考试标头中,名称为图像。

玩得愉快。