值未出现在Datagrid中?

穆罕默德·哈尼(Mohammad Hani)

我想做什么?
我正在从事项目,即在线股票/股票营销。客户可以在其中设置一些订单,并可以在其屏幕上查看详细信息。为此,我使用WPF + C#,并使用datagrid,因此所有产品,费率及其所有详细信息都将以表格形式在该网格中列出。并且数据将从Sql Server Management Studio中获取。而且,我将数据绑定到datagrid中。
我要面对什么问题?
我面临的问题是在datagrid中添加了行,但是数据没有出现在那些行中。例如,如果数据库中有4行,则相同。行出现在datagrid上,但出现空行:(。

XAML:-

 <DataGrid IsReadOnly="True" x:Name="pa" AutoGenerateColumns="False" ItemsSource="{Binding}">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Name" Binding="{Binding ProductName}" Width="2*" />
                <DataGridTextColumn Header="Price" Binding="{Binding ProductPrice}" Width="2*" />
                <DataGridTextColumn Header="Unit" Binding="{Binding ProductUnit}" Width="2*" />
                <DataGridTextColumn Header="Stock" Binding="{Binding ProductStock}" Width="2*" />
                <DataGridTextColumn Header="Code" Binding="{Binding ProductCode}" Width="2*" />
            </DataGrid.Columns>
        </DataGrid>  

C#:-

    static ObservableCollection<ProductAva> collection = new ObservableCollection<ProductAva>();
    private string ProductName { get; set; }
    private string ProductPrice { get; set; }
    private string ProductUnit { get; set; }
    private string ProductStock { get; set; }

    private string ProductCode { get; set; }


    private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {




        SqlConnection con = new SqlConnection("Server=DESKTOP-KE9BBUE;Database=Vegomart;Trusted_Connection=True");
        con.Open();
        SqlCommand command = new SqlCommand("select * from AddNewItem", con);
        SqlDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            collection.Add(new ProductAva() { ProductName = reader.GetString(1), ProductPrice= Convert.ToString(reader.GetInt32(2)), ProductUnit = reader.GetString(4), ProductStock = Convert.ToString(reader.GetInt32(5)), ProductCode = reader.GetString(3)});
        }

        pa.ItemsSource = collection;

    }

请帮帮我.. !!

穆罕默德·哈尼(Mohammad Hani)

啊,终于找到了解决方案。

而不是将属性声明为私有,它们应该是公开的:-

  private string ProductName { get; set; }
private string ProductPrice { get; set; }
private string ProductUnit { get; set; }
private string ProductStock { get; set; }

更正:-

  public string ProductName { get; set; }
public string ProductPrice { get; set; }
public string ProductUnit { get; set; }
public string ProductStock { get; set; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章