Τις τελευταίες μέρες προσπαθώ μάθω να χρησιμοποιώ το xtragrid.
Αυτό που θέλω είναι να ξεκινάω με ένα άδειο grid του οποίου τα Columns έχω ορίσει και θέσει τα repository items τους, και στην συνέχεια ,μια μια, να εισάγω εγγραφές της οποίες κάποια στιγμή να αποθηκεύω σε μια βάση.
Δυστυχώς το καταραμένο είναι "datasource oriented" και θα πρέπει να το συνδέσω με ένα data source.
Η πρώτη λογική σκέψη είναι να ξεκινήσω με ένα άδειο dataSource.Για να κάνω τις δοκιμές μου, έβαλα ένα button Και όταν το πατάω εκτελώ αυτό που βλέπετε.
Χρησιμοποιώ λοιπόν ένα άδειο DataTable και στο Load της φόρμας κάνω:
DataTable dataSource = new DataTable();
SqlDataAdapter adapter = null;
private void FTestForm_Load(object sender, EventArgs e)
{
CreateColumns();
gridControl1.DataSource = dataSource;
}
private void button1_Click(object sender, EventArgs e)
{
DataRow dr = dataSource.NewRow();
dataSource.Rows.Add(dr);
//gridView1.AddNewRow();
}
private void CreateColumns()
{
dataSource.Columns.Add(new DataColumn("", typeof(string)));
dataSource.AcceptChanges();
}Κάνω 2 πράγματα:
1) Είτε αυτό που βλέπετε

2) Είτε αυτό:
private void button1_Click(object sender, EventArgs e)
{
//DataRow dr = dataSource.NewRow();
//dataSource.Rows.Add(dr);
gridView1.AddNewRow();
}Στην πρώτη περίπτωση, παρόλο που ο αριθμός των γραμών στο DataTable αλλάζει, η τιμή που βάζω στα Cells δείχνει να μην αποθηκεύται και ούτε φαίνεται στο grid μόλις αλλάξω cell.
Στην 2η περίπτωση, το validation δεν με αφήνει να φύγω από το Cell που κάνω editting και μου λέει σαν μήνυμα λάθους το κλασικό "Object Reference Is not set to an instance of an object".
Καμοιά ιδέα? Όχι μόνο σε αυτά που κάνω αλλά και κανέναν νέο τρόπο για να κάνω την δουλειά μου.
Ευχαριστώ.