0

所以我一直在研究这个数据网格的东西并遇到了另一个问题。所以,我在一个文本框上有这个 textchanged 事件,它接受条形码扫描仪输入并将该 UML 编号与电影表 (tblMovies) 匹配。它获取该行并将其插入到购物车表 (tblCart) 中。发生这种情况时,我试图在 wpf 窗口中使用数据网格,在使用 c# 的视觉工作室中,在接收新输入时在其中填充 tblCart。所以我遇到的问题是它会显示一个空行,单元格中没有任何内容。有人知道为什么吗?

这是我的 XAML 中的数据网格:

<DataGrid Name="dg1" AutoGenerateColumns="False" Height="323" HorizontalAlignment="Left" Margin="26,25,0,0" VerticalAlignment="Top" Width="332" >
        <DataGrid.Columns>
            <DataGridTextColumn Header="Title" Width="250" Binding="{Binding tblCart.Title}"/>
            <DataGridTextColumn Header="Price" Width="57" Binding="{Binding tblCart.Price}"/>

        </DataGrid.Columns>
    </DataGrid>

这是我在 .cs 中启动的数据网格:

public partial class SalesScreen : Window
{
    DataSet ds = new DataSet();
    SqlConnection cn = new SqlConnection("Data Source=******;Initial Catalog=*****;User ID=**; Password=**********");
    SqlDataAdapter da;
    DataTable dt;

    public SalesScreen()
    {
        InitializeComponent();
        cn.Open();
        String cmdString = "Select Title, Price from tblCart";
        SqlCommand cmd = new SqlCommand(cmdString, cn);
        da = new SqlDataAdapter(cmd);
        dt = new DataTable("tblCart");
        da.Fill(dt);
        dg1.ItemsSource = dt.DefaultView;
    }

这是 textchanged 方法:

        private void TBox_TextChanged(object sender, TextChangedEventArgs e)
    {
        String cmdString = "INSERT INTO tblCart(Title, GenreID, Price, Year, UML, Quantity) Select Title, GenreID, Price, Year, UML, Quantity FROM tblMovies WHERE UML = '" + BarcodeReader.Text + "'";
        SqlCommand cmd = new SqlCommand(cmdString, cn);
        da = new SqlDataAdapter(cmd);
        dt = new DataTable("tblCart");
        da.Fill(dt);
        dg1.ItemsSource = dt.DefaultView;
    }

如果马虎或做错了,我再次道歉,但我仍在学习。对于为什么我的表格显示为空单元格的任何帮助将不胜感激。

4

1 回答 1

0

您已经将 itemsource 设置为 tblCart 因此,当您在 xaml 绑定中键入它时,它实际上正在寻找 tblCart.tblCart.Title (显然不存在)。

以下应该可以解决问题(假设您的集合确实包含数据)

 <DataGridTextColumn Header="Title" Width="250" Binding="{Binding Title}"/>
 <DataGridTextColumn Header="Price" Width="57" Binding="{Binding Price}"/>
于 2013-04-27T11:09:48.653 回答