在wpf中,我创建了一个DataGrid,它必须显示csv文件中的8列和190行。我的问题显示我5列以上,然后在结束时重复8列,是在开始。为什么要多给我看13列?在5列中,他插入条目:Campionato_calcio_2022_23.Campionato_calcio_2022_23_serie_A
这就是代码:
class Campionato_calcio_2022_23_serie_A
{
public String ID { get; set; }
public string Squadra_casa { get; set; }
public string Squadra_fuoric { get; set; }
public string Ris_cas { get; set; }
public string Ris_fuorc { get; set; }
public string segni { get; set; }
public string Data { get; set; }
public string Giornate { get; set; }
public Campionato_calcio_2022_23_serie_A() { }
}
void lFnGenerateData(StreamReader aReader)
{
try
{
bool lBlnIsColumns = true;
string[] lArrCols = null;
List<Campionato_calcio_2022_23_serie_A> lstPersonalList = new List<Campionato_calcio_2022_23_serie_A>();
DataGrid1.Columns.Clear();
while (aReader.Peek() > 0)
{
string lStrLine = aReader.ReadLine();
if (lStrLine == null)
break;
if (lStrLine.Trim() == "")
continue;
string[] lArrStrCells = null;
lArrStrCells = lStrLine.Split(';');
if (lArrStrCells == null)
continue;
if (lBlnIsColumns)
{
lArrCols = lArrStrCells;
foreach (string lStrCell in lArrStrCells)
{
DataGridTextColumn lDGCol = new DataGridTextColumn();
lDGCol.Header = lStrCell;
lDGCol.Binding = new System.Windows.Data.Binding(lStrCell);
DataGrid1.Columns.Add(lDGCol);
}
lBlnIsColumns = false;
continue;
}
if (lArrCols == null)
continue;
int lIntColID = 0;
Campionato_calcio_2022_23_serie_A objCampionato_calcio_2022_23_serie_A = new Campionato_calcio_2022_23_serie_A();
objCampionato_calcio_2022_23_serie_A.ID = lArrStrCells[0];
objCampionato_calcio_2022_23_serie_A.Squadra_casa = lArrStrCells[1];
objCampionato_calcio_2022_23_serie_A.Squadra_fuoric = lArrStrCells[2];
objCampionato_calcio_2022_23_serie_A.Ris_cas = lArrStrCells[3];
objCampionato_calcio_2022_23_serie_A.Ris_fuorc = lArrStrCells[4];
objCampionato_calcio_2022_23_serie_A.segni = lArrStrCells[5];
objCampionato_calcio_2022_23_serie_A.Data = lArrStrCells[6];
objCampionato_calcio_2022_23_serie_A.Giornate = lArrStrCells[7];
lstPersonalList.Add(objCampionato_calcio_2022_23_serie_A);
}
aReader.Close();
DataGrid1.ItemsSource = lstPersonalList;
}
catch (Exception)
{
throw;
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
{
try
{
lFnLoadFileData();
}
catch (Exception)
{
throw;
}
}
void lFnLoadFileData()
{
try
{
Microsoft.Win32.OpenFileDialog lObjFileDlge = new Microsoft.Win32.OpenFileDialog();
lObjFileDlge.Filter = "CSV Files|*.csv";
lObjFileDlge.FilterIndex = 1;
lObjFileDlge.Multiselect = false;
string fName = "";
bool? lBlnUserclicked = lObjFileDlge.ShowDialog();
if (lBlnUserclicked != null || lBlnUserclicked == true)
{
fName = lObjFileDlge.FileName;
}
if (System.IO.File.Exists(fName) == true)
{
// FileStream lObjFileStream = lObjFileDlge.File.OpenRead();
StreamReader lObjStreamReader = new StreamReader(fName);
System.Windows.MessageBox.Show(lObjStreamReader.ToString());
lFnGenerateData(lObjStreamReader);
lObjStreamReader.Close();
}
}
catch (Exception)
{
throw;
}
}
}
我希望它显示我只有8列,这是在csv文件。
1条答案
按热度按时间l2osamch1#
使用此代码解决: