Avatar billede Slettet bruger
19. februar 2007 - 13:04 Der er 2 kommentarer og
1 løsning

Søger godt råd

Jeg har et listview der viser mine downloads i et p2p program jeg har lavet. Lige nu gør jeg det at jeg Clear hele listviewt og opretter items igen hvert sekund. Dette giver dog et ret uheldigt resultat da det blinker hele tiden.

Jeg har et array med mine Transfer objekter i, så det er bare derfra jeg skal læse. Hvordan gør jeg det på den bedste måde så jeg ikke behøver at slette og tilføje hele tiden, men at alle rows bliver opdateret hvert sekund?

Jeg har ikke flere point at give af end disse, så i må nøjes med det :P
Avatar billede skov_p Praktikant
19. februar 2007 - 22:42 #1
Et listview er lidt tungt, især hvis der er mange sub items.
Jeg vil forslå databinding til en gridview.
Lav en toDataRow metode i dit transfer object der returnerer en DataRow der indeholder dine værdier.
Hvert sek. looper du gennem dit array

DataTable table;
datagrid.datasource = table;

private void loop(){
table.Rows.Clear();
foreach(Transfer trans in TransferObjs)
  table.Rows.Add(trans.toDataRow());
(this.BindingContext[table] as CurrencyManager).Refresh();
}

Dette er ikke testet så forvent ikke at det virker med det samme
Avatar billede Slettet bruger
19. februar 2007 - 23:56 #2
Det skal være et listview da datagrid er hyper grimt at kigge på.. har et specielt lavet listview
Avatar billede skov_p Praktikant
20. februar 2007 - 22:54 #3
Gem dine transfer objects i Tag på dit ListView

Lav en Equals metode i dit object

public override Equals(Object obj){
TransferObject t = obj as TransferObject;
return t.noget = noget...
}


for(int i=0;i<listView.Items.count;i++){
listView.beginUpdate();
if(!listView.Items[i].Tag.Equals(array[i]))
listView.Items[i] = getItem(array[i]);
listView.endUpdate();
}
private ListViewItem getItem(TransferObject trans){
TransferObject til listview metode
}

Hvis du vil gøre det rigtig fælt skal du checke hver eneste subitem og kun ændre de værdier der er skiftet.

God fornøjelse :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester