2012-08-06 111 views
0

我有列表基於類(id,名稱,代碼,價格)和即時嘗試將該值添加到數據網格。問題在於,數據網格仍然是空的,我的意思是看起來像: enter image description here空DataGrid WPF

XAML

<DataGrid AutoGenerateColumns="False" Height="275" HorizontalAlignment="Left" Margin="337,51,0,0" Name="dataGridProducts" VerticalAlignment="Top" Width="403" Foreground="#FF803E3E"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="ID" Width="30" /> 
     <DataGridTextColumn Header="Nazwa" Width="200" /> 
     <DataGridTextColumn Header="Kod" Width="120" /> 
     <DataGridTextColumn Header="Cena" Width="100" /> 
    </DataGrid.Columns> 
</DataGrid> 

代碼背後:

private void categoryListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    SqlConnection SqlConn = new SqlConnect().ConnectToSql(); 
    using (SqlConn) 
    { 
     SqlConn.Open(); 
     SqlCommand fillCategories = new SqlCommand("...", SqlConn); 
     SqlDataReader rdr1; 
     rdr1 = fillCategories.ExecuteReader(); 
     while (rdr1.Read()) 
     { 
      Products p = new Products(rdr1.GetInt32(rdr1.GetOrdinal("ID")), rdr1.GetString(rdr1.GetOrdinal("ProductName")), rdr1.GetString(rdr1.GetOrdinal("Barcode")), rdr1.GetString(rdr1.GetOrdinal("Price"))); 
      completeProductList.Add(p); 
     } 
    } 
    dataGridProducts.ItemsSource = completeProductList; 
} 

是否有任何解決方案如何解決它?

+0

您至少需要分享您的xaml部分。類聲明也會有幫助。 – Maverik 2012-08-06 10:50:04

+0

哦,該死的我在這裏輸入了xaml代碼,但看起來很糟糕。 這裏是xaml和class的鏈接: http://pastebin.com/RD3YySDf – user13657 2012-08-06 10:54:03

+1

您是否使用MVVM模式?我的代碼猜測是你正在嘗試自動生成列,但是你在xaml中定義的列也沒有綁定,因此不能顯示任何數據。 – Maverik 2012-08-06 11:08:31

回答

4

必須在類數據網格項目源的列綁定到一個值

例子: 如果datagrid.ItemsSource是3列的表格:

- ID 
    - Name 
    - Address 

您必須綁定每個將數據網格的列添加到表格的列中:

... 
<DataGridTextColumn Header="ID" Binding="{Binding Path=ID}" Width="Auto" /> 
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" Width="Auto" /> 
<DataGridTextColumn Header="Address" Binding="{Binding Path=Address}" Width="Auto" /> 
... 

然後您會看到該表的綁定值。