vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ASP.NET, WebServices u. Remoting
Silverlight 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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Silverlight Datagrid Grundlagen - Zeilen und Reihen hinzufügen (vb) 
Autor: ModeratorFZelle (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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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 ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Silverlight Datagrid Grundlagen - Zeilen und Reihen hinzufügen (vb) 
Autor: ModeratorFZelle (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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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 ;)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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 !
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Silverlight Datagrid Grundlagen - Zeilen und Reihen hinzufügen (vb) 
Autor: ModeratorFZelle (Moderator)
Datum: 04.02.13 09:35

Evtl solltest Du dir auch mal den unterschied zwischen Properties und Feldern anschauen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel