2017-08-03 65 views
0

好的,所以我正在做我的編程課程中的第一個評估/任務,所以請記住我對此很新。通過事件從列表中填充datagridview

所以我有一個帶有庫存量,名稱,代碼和OnOrder屬性的產品列表的CSV文件,我已經完成了我認爲是編寫程序的第一大步驟,把它放到程序中到DataGridView中(這是所有的自由格式,但我必須首先使用一個列表或數組,然後必須通過項目代碼或計數等進行排序)。

這裏是我到目前爲止的代碼:

namespace SkillageAppForm 
{ 
class Program 
{ 
    /// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    [STAThread] 
    static void Main(string[] args) 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new Form1()); 

     args = new[] { "C:\\StockFile\\stocklist.csv" }; 

     var dailyvalues = ReadValues(args[0]); 
    } 

    public class DailyValues 
    { 
     public string ItemCode; 
     public string ItemDescription; 
     public int CurrentCount; 
     public string OnOrder; 

     public static DailyValues FromLine(string line) 
     { 
      var data = line.Split(','); 

      return new DailyValues() 
      { 
       ItemCode = data[0], 
       ItemDescription = data[1], 
       CurrentCount = int.Parse(data[2]), 
       OnOrder = data[3] 
      }; 
     } 
    } 

    public IList<DailyValues> ReadValues(string path) 
    { 
     var myList = new List<DailyValues>(); 
     foreach (var line in File.ReadLines(path).Skip(1)) 
     { 
      myList.Add(DailyValues.FromLine(line)); 
     } 
     return myList; 
    } 
} 

因此,運行此並設置一個破發點,這似乎填充myList中,就像我希望它,所以耶。但是現在我對如何將這個列表放到DataGridView中感到非常困惑,我迄今試過的方式只是使用click事件將它加載到使用數據源的DataGridView中(因此我假設你可以實際上不是從事件處理程序中調用一個列表,而是使用Google搜索這個隨機的東西,例如在方法中調用事件並在事件處理程序中創建列表。

我只是不知道如何做到這一點,因爲我說我對編碼超級新,當我看過像40小時的Pluralsight課程時,我仍然很困惑。

我假設我有一些簡單的錯誤或者我錯過了巨大的東西,我不是在這裏欺騙我的評估,只是因爲我在這裏坐了幾個小時試圖弄清楚這一點谷歌和通過類回顧,實際上找不到答案。非常感謝任何幫助:)

+0

您需要查找教程。 SO不是代碼寫入服務。但是這可能會幫助您確定如何手動插入:https://stackoverflow.com/questions/13362971/adding-rows-on-datagridview-manually –

+0

What @ jason.kaisersmith說,再加上,如果您的DataGridView在Form1上,您在表單顯示後正在讀取文件*,因此除非您希望將列表傳遞到之後填充表格,否則最好從代碼隱藏表單讀取文件。或者在打開表單之前閱讀它,並通過構造函數將列表傳遞給表單。 –

回答

0

如果你想讓你的生活更輕鬆,完全卸載自定義類並將數據加載到適當準備的DataTable中(例如,創建一個DataTable,添加相關的命名和類型列對它加載行),然後將DataGridView的.DataSource設置爲數據表。

確保AutoGenerateColumns = true在DataGridView上