在Silverlight 4应用程序中将CSV文件加载到DataGrid中 [英] Loadin a CSV file into a DataGrid in Silverlight 4 Application

查看:78
本文介绍了在Silverlight 4应用程序中将CSV文件加载到DataGrid中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经尝试过了,我可以将所有列加载到datagrid中,但是看不到行中的数据.所有行均显示为空.我在这里做错什么了吗.请退房并提供帮助.

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()
{
    try
    {
        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();
        }
    }
    catch (Exception)
    {
        throw;
    }
}

void lFnGenerateData(StreamReader aReader)
{
    try
    {
        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)
                continue;
            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;
                continue;
            }
            if (lArrCols == null)
                continue;
            int lIntColID = 0;
            lObjDicData = new Dictionary<string, object>();
            foreach (string lStrCell in lArrStrCells)
            {
                lObjDicData[lArrCols[lIntColID]] = lStrCell.Trim();
                lIntColID++;
            }
            lArrDGRows.Add(lObjDicData);
        }
        aReader.Close();
        dgrex.ItemsSource = lArrDGRows;
                
    }
    catch (Exception)
    {
        throw;
    }
}



谢谢
Sreenath



Thanks
Sreenath

推荐答案



有人可以建议我在Silver Light上为初学者设计和编码的互联网上的书籍或电子书吗?
工资软件
Hi

Can someone please suggest me books or eBooks on internet on Silver Light designing and coding for a beginner.
Payroll Software


这篇关于在Silverlight 4应用程序中将CSV文件加载到DataGrid中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆