| |
ASP.NET, WebServices u. RemotingSilverlight Datagrid Grundlagen - Zeilen und Reihen hinzufügen (vb) | | | Autor: symax | Datum: 28.01.13 20:30 |
| Hallo Gemeinde,
ich möchte in Silverlight (4) ein Datagridview betreiben. (Visual Basic)
Ich bin das Datagridview aus Visual Basic.net gewohnt und versuche gerade, das ganze in Silverlight zu verstehen.
Also in VB kann ich die Reihen zur Laufzeit hinzufügen:
// Beim klicken auf einen Button
DGV.Columns.Add("Name", "Name")
DGV.Columns.Add("MAIL", "MAIL")
...
und später dann Zeilen mit
DGV.Rows.add("MAX MUSTERMANN, MAX@Muster.de")
... So etwas versuche ich auch in Silverlight beim klicken auf einen Button
Also 1. Schritt -> Header erstellen
Pseudo:
add Header1 = "1"
add Header2 = "2"
und dann ne Zeile dazu
add Columns = "Feld1", "Feld2"
Geht das so in Silverlight irgendwie ?
Oder brauche ich da einen Umweg über z.B. eine Klasse/List of (T) oder sonnstiges ?
Feste Reihen hinzufügen habe ich über
<sdk:DataGridCheckBoxColumn Header ="Name" CanUserReorder="True" _
CanUserResize="True" CanUserSort="True" Width="185" /> hinbekommen, aber das sind ja dann fixe Reihen. Ich würde dynamische Reihen bevorzugen.
Aber ob ich die Reihen dynamisch oder fix erzeuge ...
Wie füge ich jetzt eine Zeile mit Werten hinzu ?
Gruß
Stefan | |
Re: Silverlight Datagrid Grundlagen - Zeilen und Reihen hinzufügen (vb) | | | Autor: FZelle (Moderator) | Datum: 02.02.13 12:32 |
| Das ist beides VB, denn das ist die Sprache, was Du meinst ist WindowsForms oder Silverlight.
Und schon beim DataGridView ist es falsch die Daten ins Grid zu friemeln.
Bei Silverlight wird es noch viel schlimmer wenn du diesen falschen Weg weiter verfolgst und nicht anfängst dich damit zu beschäftigen wie das Funktioniert ( Grundlagen lesen, nicht irgendwelchen Code zusammenklauben).
Benutze eine Auflistung wie List(of) oder besser ObservableCollection und packe deine Datenobjekte dort hinein.
Dann musst Du nur noch die ItemSource setzen und gut.
http://beyondrelational.com/modules/2/blogs/433/posts/12021/different-ways-to-bind-data-grid-in-silverlight.aspx
Aber dazu solltest Du verstehen das in Silverlight alles anders ist und meist auch die Herangehensweise zu ändern ist.
Du kannst nicht weiter wie in VB1 arbeiten. | |
Re: Silverlight Datagrid Grundlagen - Zeilen und Reihen hinzufügen (vb) | | | Autor: symax | Datum: 02.02.13 16:45 |
| Hallo FZelle,
danke für die Info.
Diese Art des Befüllens kenne ich auch, habe aber damals die "unsaubere" genutzt.
Aber nun zum eigentlichen "Problem", wenn ich es mal mit einer List of (T) mache
Dim dinosaurs As New List(Of String)
dinosaurs.Add("Tyrannosaurus")
dinosaurs.Add("Amargasaurus")
dinosaurs.Add("Mamenchisaurus")
dinosaurs.Add("Deinonychus")
dinosaurs.Add("Compsognathus")
MessageBox.Show(dinosaurs(2)) er zeigt mir dann mittels mssgbox, dass die list of (T) funktioniert, soweit so gut.
Nun möchte ich das ganze noch in dem Datagrid angezeigt bekommen.
(also einfaches Beispiel, soll nur "Dinosaurier" untereinander anzeigen, 1 Spalte)
DataGrid1.ItemsSource = dinosaurs ... nichts ändert sich ?
Meine Idee war das evtl. erst 1 Spalte vorhanden sein muss, damit das funktioniert (?)
Dim TemplateColumn As New DataGridTemplateColumn
TemplateColumn.Header = "Dinosaurier"
DataGrid1.Columns.Add(TemplateColumn) und anschließend datagrid1 auf die liste verweisen ändert auch nichts ...
was mache ich falsch ?
Irgend eine Idee warum das itemsource nicht funktioniert bzw. die Dinosaurier nicht in der Liste angezeigt werden ? | |
Re: Silverlight Datagrid Grundlagen - Zeilen und Reihen hinzufügen (vb) | | | Autor: FZelle (Moderator) | Datum: 02.02.13 23:34 |
| Der Fehler ist, das du nicht in die Grundlagen schaust.
Das DGV/DG nimmt die Auflistung, und benutzt die in den darin gespeicherten Objekten enthaltenen Public Properties um das Grid mit Spalten zu versorgen und dann die Zeilen anzuzeigen.
Und String hat nicht die Properties die du erwartest.
Deswegen sagte ich ja das Du da deine Datenklassen hineintun sollst.
In deinem ersten Posting also eine Klasse die die Public Properties Name und Mail usw haben. | |
Re: Silverlight Datagrid Grundlagen - Zeilen und Reihen hinzufügen (vb) | | | Autor: symax | Datum: 03.02.13 00:56 |
| Hallo FZelle,
nochmals danke
Ich habe das mit einer List of (String) versucht, da es da auch einige Beispiele dazu gab im www und das am einfachsten aussah.
Natürlich hätte ich früher oder später auf eine Klasse umgeschwänkt.
Also ich mach mal ein Beispiel, ich bleibe mal bei "Dinosaurier":
Klasse Dinos
Public Class Dinos
Public name As String
Public groesse As String
Public gewicht As String
End Class Dann erstelle ich das ganze als List of (Dinos), füge das ganze zum Testen ob das List of (...) auch funktioniert mal noch ner Listbox hinzu (zu beruhigung) und füge dem Datagrid dann das List of (...) hinzu
Button x
Dim dinosaurier As New List(Of Dinos)
' 2 Dinos zum Testen hinzufügen, Inhalt sind Fantasie
dinosaurier.Add(New Dinos With {.gewicht = 20, .groesse = 50, .name = _
"Tyrannosaurus"})
dinosaurier.Add(New Dinos With {.gewicht = 31, .groesse = 72, .name = _
"Amargasaurus"})
' Anzeigen in einer Listbox zum Kontrollieren, ob die List of Dinos auch
' richtig befüllt ist
ListBox1.Items.Add(dinosaurier(0).name & "#" & dinosaurier(0).groesse & _
"#" & dinosaurier(0).gewicht)
ListBox1.Items.Add(dinosaurier(1).name & "#" & dinosaurier(1).groesse & _
"#" & dinosaurier(1).gewicht)
' Anbinden an ein Datagrid
DataGrid1.ItemsSource = dinosaurier Es passiert einfach nichts, Datagrid bleibt wie immer leer.
Habe auch ein Beispiel mit Studenten 1:1 gemacht, Datagrid bleibt auch hier leer (Debug)
http://msmvps.com/blogs/deborahk/archive/2011/01/22/populating-a-datagrid-in-a-silverlight-application.aspx
Datagrid habe ich "nur" mit dem Designer reingezogen
<sdk:DataGrid AutoGenerateColumns="False" Height="170" _
HorizontalAlignment="Left" Margin="10,10,0,0" Name="DataGrid1" _
VerticalAlignment="Top" Width="378" /> So langsam gehen mir die Tutorials aus, bisher hat einfach kein einziges funktioniert ...
Hoffe, du kannst mir Sagen wo mein Fehler ist ;) | |
Re: Silverlight Datagrid Grundlagen - Zeilen und Reihen hinzufügen (vb) | | | Autor: symax | Datum: 03.02.13 01:00 |
| Fehler selbst gefunden
vor das binding noch ein ...
DataGrid1.AutoGenerateColumns = True dann klappts auch "mit dem Nachbarn" ;)
Danke FZelle für deine Unterstützung ! | |
Re: Silverlight Datagrid Grundlagen - Zeilen und Reihen hinzufügen (vb) | | | Autor: FZelle (Moderator) | Datum: 04.02.13 09:35 |
| Evtl solltest Du dir auch mal den unterschied zwischen Properties und Feldern anschauen. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Weitere Infos
|