Springen naar inhoud


- - - - -
C# 2010 SOLVED

Datagridview Vullen

C# dataGridView List

  • Log in a.u.b. om te beantwoorden
Er zijn 2 reacties in dit onderwerp

#1 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 May 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 10 February 2013 - 17:20


Hallo VBIBers,

Ik heb weer een uitdaging, oftwel ik zit vast.


Ik heb een server met een daarbij behorende cliënt.
De bedoeling is dat de server een logbestand uitleest en de laatste regel naar de clients stuurd.
Dit gedeelte lukt allemaal wel.


Ik sla alles op in een object welke wordt opgeslagen in een list of.
Ik wil alleen de laaste tien regels bij houden, dus ik dacht dat het wel handig was als ik de List of koppel aan de datasource van een DGV.

Maar hier gaat het fout, ik krijg wel regels in mijn DGV, maar deze zijn allemaal leeg. Het aantal regels komt ook overeen met het aantal records in mijn List of. Hoe kan dit?
Tijdens het debuggen zie ik dat de list wel gevuld wordt.



Aanmaken List en DGV
C Code:
 BindingList LogList = new BindingList();
private Thread luister;

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

luister = new Thread(listen);
luister.Start();

dataGridView1.AutoGenerateColumns = false;
dataGridView1.AllowUserToAddRows = false;


dataGridView1.Columns.Add("time", "Time");
dataGridView1.Columns.Add("ID", "ID");
dataGridView1.Columns.Add("type", "Type");
dataGridView1.Columns.Add("DSCS", "DSCS");
dataGridView1.Columns.Add("ver1", "Ver1");
dataGridView1.Columns.Add("ver2", "Ver2");
dataGridView1.Columns.Add("ok", "OK");


dataGridView1.Columns[0].DataPropertyName = "time";
dataGridView1.Columns[1].DataPropertyName = "ID";
dataGridView1.Columns[2].DataPropertyName = "type";
dataGridView1.Columns[3].DataPropertyName = "DSCS";
dataGridView1.Columns[4].DataPropertyName = "ver1";
dataGridView1.Columns[5].DataPropertyName = "ver2";
dataGridView1.Columns[6].DataPropertyName = "ok";

BindingList LogList = new BindingList();
//dataGridView1.DataSource = LogList;

}





Toevoegen aan List

C Code:
 for (int i = 0; i < splitData.Length; i++)
{
DSCSlog logLine = new DSCSlog(splitData[i]);
addToList(logLine);
}

changeDataDisplay();

ChangeDisplay en AddlogLine:
C Code:

private void changeDataDisplay()
{
if (dataGridView1.InvokeRequired)
{
// This is a worker thread so delegate the task.
dataGridView1.Invoke(new ChangeDataDisplayDelegate(changeDataDisplay));
}
else
{
dataGridView1.DataSource = LogList;
}
}

private delegate void addToListDelegate(DSCSlog logLine);


private void addToList(DSCSlog logLine)
{
if (dataGridView1.InvokeRequired)
{
// This is a worker thread so delegate the task.
dataGridView1.Invoke(new addToListDelegate(addToList), logLine);
}
else
{
LogList.Add(logLine);
}
}


B.v.d. voor de hulp  


Groeten,

Eviltwin

Bijgevoegde Bestanden


Utterly useless, but always trying to help

#2 Eviltwin

Eviltwin

    Professional Developer

  • Leden
  • PipPipPipPip
  • 299 berichten
    Laatst bezocht 09 May 2014 15:22
  • LocatieKampen, Nederland

Geplaatst op 10 February 2013 - 20:03

Hallo,

Ik heb de oplossing ondertussen al gevonde.
Blijkt dat je properties in een class een  get en set moeten hebben voordat de DGV de data weergeeft.

Groeten,

Eviltwin
Utterly useless, but always trying to help

#3 Benno

Benno

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 949 berichten
    Laatst bezocht 01 Jul 2014 07:47
  • LocatieGyor, Magyarország

Geplaatst op 10 February 2013 - 21:41

Bericht bekijkenEviltwin, op 10 February 2013 - 20:03, zei:

Blijkt dat je properties in een class een  get en set moeten hebben voordat de DGV de data weergeeft.
Dat klopt niet. Enkel een get (readonly property) is genoeg.





Ook met taq C# 2010 SOLVED, C#, dataGridView, List voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[C# 2010 SOLVED] Untitled 1

Hosting provided by Combell
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
vbib.be - vbnet.be - vbdotnet.be - visualbasic.be