Gå til innhold

Anbefalte innlegg

Heisan igjen

 

Det er tydeligvis noe jeg ikek har skjønnt her. Jeg har en listeboks laget med DataGridView kontrollen for å å få Edit In Place funksjonalitet. Denne har jeg proppet med en Liste. Når jeg adder kommer det ingen poster inn i det hele tatt. Men hvis jeg adder før jeg proppert inn DataSource så får jeg frem data.

dim lst as new List (of Person) ' Person er en klasse med person info

Private sub Button_Click..............
 lst.add(new Person("10","Kåre")
 lst.add(new Person("20","Nils")
 me.DataGridView1.DataSource = lst
End Sub

Private sub Button2_Click.........
 lst.Add(New Person("30","Hans")
End Sub

Hvis jeg kjører første prosedyre så kommer det frem data, men når prosedyre 2 kjører skjer det ingenting. Den nye linjen dukker aldri opp.

 

Jeg fant ut at hvis jeg gjør slik så virker det:

lst.add(new Person("30","Hans")
me.DataGridView1.DataSource = Nothing
me.DataGridView1.DataSource = lst

 

Det kan da ikke være meningen at det skal være slik? Finnes det en property som gjør dette automatisk?

 

Ole

Lenke til kommentar
Videoannonse
Annonse
Har du prøvd med
DataGridView1.Refresh

7641576[/snapback]

 

Har prøvd nå. Ingen forskjell desverre.

 

Andre tips?

 

Saken er at dette er ganske tungvint i systemet mitt fordi jeg er nødt til å gjøre følgende hver eneste gang jeg gjør en endring enten det er ny, endring eller sletting av post:

me.lstApplications.DataSource = Nothing
me.lstApplications.DataSource = me.ApplicationList
me.lstApplications.Columns(0).HeaderText = "Applications"
me.lstApplications.Columns(1).HeaderText = "Path"
me.lstApplications.Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

Som dere ser, kjedelig greie. Så klart jeg kan legge dette inn i en metode, men jeg skulle jo tro dette var der allerede

 

Ole

Lenke til kommentar

Hva med denne?

DataGridView1.ReBind

The Rebind method causes the DataGrid control to perform the same operations that occur when you set the DataSource property. The DataGrid control resets the columns, headings and other properties based on the current Data control properties.

Lenke til kommentar
Hva med denne?

DataGridView1.ReBind

The Rebind method causes the DataGrid control to perform the same operations that occur when you set the DataSource property. The DataGrid control resets the columns, headings and other properties based on the current Data control properties.

7648703[/snapback]

 

Huh?? ReBind ga bare en blå "Error" linje... med meldingen

"Rebind is not a member of 'System'Windows'Form'DatagridView'"

 

Merkelig........

 

Ole

Lenke til kommentar
DataGrid hører til .NET Framework 1.1 og er fjernet i 2.0 (erstattet med DataGridView).

7649053[/snapback]

Nettop. Jeg bruker datagridview og ikke datagrid. Kansje jeg i dette tilfellet bare rett og slett skulle brukt DataGrid i stedet. Er vel ikek noe problem å blande FrameWork er det vel?

 

Ole

Lenke til kommentar
Jeg ville tenkt at det faktisk er en grunn til at Microsoft erstattet DataGrid med DataGridView, og heller prøvd å finne en løsning med det... ;)

7649220[/snapback]

 

Forsåvidt enig med deg der. Det rare er at om jeg kjører programmet i debuggeren og har en break point inne i triggeren til propertyen som representerer en av kolonnene så stopper koden der hele tiden. Det må jo bety at DataGridView kontrollen refresher hele tiden. Alikevel henter den altså ikke inn det nye datasettet. Stemmer vel forsåvidt med tanke på at den normalt blir brukt sammen med SQL, men det bør jo være en enklere måte å refreshe kontrollen på.

 

Samme det. Jeg kan også godt klare meg med å resette DataSoource propertien.

 

Ole

Lenke til kommentar
Har du sjekket at det ikke er DataSource'n som trenger å bli "refreshet"?

Det kan jo muligens forklare hvorfor det i så fall ikke hjelper å refreshe DataGridView'et...

7649365[/snapback]

DataSource er en liste så jeg kan ikek se hvordan den IKKE er oppdatert. Det fungerer jo hvis jeg setter DataSource = Nothing for så å sette den til listen igjen. Helt merkelig.

 

Ole

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...