2011-04-28 5 views
1

Je crée un DataTable et le lie à un DataGrid. My DataSource consiste en une table (FooTable) qui consiste en une colonne (FooName).Colonne en double dans DataTable lors de l'ajout d'une ligne

Les codes suivants s'exécutent correctement - sauf que chaque fois que j'ajoute une nouvelle ligne, une colonne dupliquée se remplit avec les mêmes données, dont je ne sais pas comment me débarrasser. Voir ci-dessous l'image et le code. J'ai seulement une colonne FooName et une colonne en double sort.

enter image description here

/* Create a DataGrid dg1 */ 
DataGrid dg1 = new DataGrid(); 
DataGridTextColumn col = new DataGridTextColumn(); 
col = new DataGridTextColumn(); 
colA.Binding = new Binding("FooName"); 
colA.Header = "FooName"; 
dg1.Columns.Add(colA); 
dataGrid1.Children.Add(dg1); 

/* Create a DataTable and bind it to DataGrid */ 
SqlCeDataAdapter da = new SqlCeDataAdapter(); 
string sqlStr = @"SELECT * FROM FooTable"; 
da.SelectCommand = new SqlCeCommand(sqlStr, conn); 
da.Fill(ds, "FooTable"); 
dt = ds.Tables["FooTable"]; 
DataRow newRow = dt.NewRow(); 
newRow["FooName"] = "Donkey"; 
dt.Rows.Add(newRow); 
dg1.ItemsSource = ds.Tables[0].DefaultView; 

Répondre

4

Essayez de régler AutoGenerateColumns false

dg1.AutoGenerateColumns = false 
+0

Haha, 34 secondes plus tôt que moi, gentil: D – Damascus

+1

Encore une autre question rapide. –

2

Essayez

dg1.AutoGenerateColumns = false; 

devrait faire le travail pour vous. Pour l'instant le DataGrid génère automatiquement les colonnes ET ajoute celui que vous avez demandé

Questions connexes