2

大家好。我正在使用ListView带有两列的 a 来读取 a 中的表格SQL server。所以一切都是正确的,当我拥有它时ListBox,但现在我更改为ListView并制作了列,出现了问题,行进入但没有文本,所以它只是向我显示一个ListView可滚动的空白。

这是XAML针对ListView

<ListView Height="315" HorizontalAlignment="Left" Margin="26,15,0,0" Name="listView1" VerticalAlignment="Top" Width="324">
    <ListView.View>
        <GridView>
            <GridViewColumn DisplayMemberBinding="{Binding Title}" Header="Title" Width="240"/>
            <GridViewColumn DisplayMemberBinding="{Binding Price}" Header="Price" Width="75"/>
        </GridView>
    </ListView.View>
</ListView>

这是TextChanged事件中调用的代码以从服务器表中调用它。

public void addtoList()
{
    cn.Open();
    String cmdString = "Select Title, Price from tblCart";
    SqlCommand cmd = new SqlCommand(cmdString, cn);
    SqlDataReader dr = cmd.ExecuteReader();
    double subT = 0;
    double tax = 1.09;
    double total = 0;

    while (dr.Read())
    {
        int count = dr.FieldCount - 1;

        for (int i = 0; i < count; i++)
        {                 
            listView1.Items.Add(dr["Title"].ToString());
            listView1.Items.Add(dr["Price"].ToString());
            subT += Convert.ToDouble(dr["Price"]);                    
        }                
    }

    total = Convert.ToDouble(subT * tax);
    subTotal.Text = subT.ToString();
    totalBlk.Text = total.ToString();
    cn.Close();
}

任何有关如何解决此问题的信息将不胜感激!

4

2 回答 2

1

应该有一个自定义对象,如以下代码,

public class CustomItem
{
    public string Title { get; set; }
    public string Price{ get; set; }
}

然后将自定义项添加到列表中

listView1.Items.Add(new CustomItem{Title =dr["Title"].ToString(), Price=dr["Price"].ToString()});
于 2013-04-29T20:28:45.580 回答
0

您正在将项目添加到 listview 集合中。将 listview 的 items 源绑定到结果的数据表:

SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds);


listView1.ItemsSource = ds.Tables[0];
于 2013-04-29T20:26:41.790 回答