2013-04-29 107 views
1

嘿傢伙。我正在使用帶有兩列的ListView來讀取SQL server的表格。所以一切都是正確的,當我有它ListBox,但現在我改變爲ListView並使列出現問題,並且行正在進入,但沒有文本,所以它只是顯示一個空白的ListView可滾動。ListView顯示沒有任何內容的行WPF C#

這裏是XAMLListView

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

有關如何解決此問題的任何信息將不勝感激!

+0

您正在爲每列添加一行。 ListViewItem沒有自定義屬性。你將需要創建一個類或stuct來保存你的屬性標題和價格。 – Paparazzi 2013-04-29 20:26:08

回答

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()}); 
+0

美妙的回覆它完美的工作!標記爲答案。 – Shawn 2013-05-01 02:43:15

+0

感謝您接受。並希望當您有資格投票時,您會投票回答:) – 2013-05-02 05:03:34

0

您正在將項目添加到listview集合中。綁定ListView的項目源到結果的數據表:

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


listView1.ItemsSource = ds.Tables[0]; 
相關問題