Agregar nueva fila a DataTable
Tengo unDataGrid
se une a una base de datos con una tabla y una columna (FooTable y FooName). Con mi siguiente código, puedo vincularDataGrid
aDataTable
y mostrar datos de la base de datos. Pero cuando cada vez que agrego una nueva fila porDataSet_Add_Click()
, no se agrega nada a laDataGrid
. Pensé que tenía bindDataTable
aDataGrid
medianteItemsSource
, pero agregar una nueva fila a DataTable no agrega una fila a DataGrid. ¿Por qué
public partial class MainWindow : Window
{
SqlCeConnection conn = new SqlCeConnection();
/* Define the Connection String */
string connString;
DataGrid dg1 = new DataGrid();
DataTable dt = new DataTable();
public MainWindow()
{
InitializeComponent();
connString = @"...";
SqlCeConnection conn = new SqlCeConnection(connString);
conn.Open();
SqlCeDataAdapter da = new SqlCeDataAdapter();
string sqlStr = @"SELECT * FROM FooTable";
da.SelectCommand = new SqlCeCommand(sqlStr, conn);
DataSet ds = new DataSet();
da.Fill(ds, "FooTable");
dt = ds.Tables["FooTable"];
dg1.ItemsSource = ds.Tables;
DataRow newRow = dt.NewRow();
newRow["FooName"] = "Mary";
dt.Rows.Add(newRow);
CreateDataGrid();
}
public struct DataItem1
{
public string FooName { get; set; }
}
private void CreateDataGrid()
{
DataGridTextColumn col = new DataGridTextColumn();
col = new DataGridTextColumn();
col.Binding = new Binding("FooName");
col.Header = "FooName";
dg1.Columns.Add(col);
/* dataGrid1 exist in XAML and is a parent of the DataGrid */
dataGrid1.Children.Add(dg1);
}
private void DataSet_Add_Click(object sender, RoutedEventArgs e)
{
DataRow newRow2 = dt.NewRow();
newRow2["FooName"] = "Mary";
dt.Rows.Add(newRow2);
}
}