I have tried this and I can get all the columns get loaded in datagrid but I cant see the data in rows. All the rows are shown empty. Am I doing anything wrong here..Please check out and help..
private void Button_Click(object sender, RoutedEventArgs e)
{
try
lFnLoadFileData();
}
catch (Exception)
throw;
void lFnLoadFileData()
OpenFileDialog lObjFileDlge = new OpenFileDialog();
lObjFileDlge.Filter = "CSV Files|*.csv";
lObjFileDlge.FilterIndex = 1;
lObjFileDlge.Multiselect = false;
bool? lBlnUserclicked = lObjFileDlge.ShowDialog();
if (lBlnUserclicked != null || lBlnUserclicked == true)
FileStream lObjFileStream = lObjFileDlge.File.OpenRead();
StreamReader lObjStreamReader = new StreamReader(lObjFileStream);
lFnGenerateData(lObjStreamReader);
lObjFileStream.Close();
void lFnGenerateData(StreamReader aReader)
bool lBlnIsColumns = true;
string[] lArrCols = null;
Dictionary<string, object> lObjDicData = null;
ObservableCollection<Dictionary<string, object>> lArrDGRows = new ObservableCollection<Dictionary<string, object>>();
dgrex.Columns.Clear();
while (aReader.Read() != null)
string lStrLine = aReader.ReadLine();
if (lStrLine == null)
break;
if (lStrLine.Trim() == "")
continue;
string[] lArrStrCells = null;
lArrStrCells = lStrLine.Split(",".ToCharArray());
if (lArrStrCells == null)
if (lBlnIsColumns)
lArrCols = lArrStrCells;
foreach (string lStrCell in lArrStrCells)
DataGridTextColumn lDGCol = new DataGridTextColumn();
lDGCol.Header = lStrCell;
lDGCol.Binding = new Binding(lStrCell);
dgrex.Columns.Add(lDGCol);
lBlnIsColumns = false;
if (lArrCols == null)
int lIntColID = 0;
lObjDicData = new Dictionary<string, object>();
lObjDicData[lArrCols[lIntColID]] = lStrCell.Trim();
lIntColID++;
lArrDGRows.Add(lObjDicData);
aReader.Close();
dgrex.ItemsSource = lArrDGRows;
Thanks
Sreenath