Zurück   Entwickler-Forum > .NET > .NET Framework allgemein

Antwort
 
Themen-Optionen Ansicht

SilverLight Datagrid.ItemsSource
Alt 30.07.2010, 12:45   #1
Günther Weber
Stammgast
 
Günther Weber ist offline
Registriert seit: 26.02.2003
Ort: Hattingen
Beiträge: 1.110
Günther Weber befindet sich auf einem aufstrebenden Ast
Standard SilverLight Datagrid.ItemsSource

Alles ist anders, jeder Versuch, etwas neues zu machen, stellt mich vor neue Probleme, die erst mühsam gelöst werden wollen. Jetzt komme ich nicht weiter, Daten in einem DataGrid darzustellen. Zwei Column-Header habe ich hinzugefügt, die sind auch im IE zu sehen. Aber jetzt die Daten....

Code:
void listBox2_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
   List<List<string>> kpl = newList<List<string>>();
   List<string> ls1 = newList<string>();
   ls1.Add("ggg");
   ls1.Add("123");
   List<string> ls2 = newList<string>();
   ls2.Add("uuu");
   ls2.Add("456");
   kpl.Add(ls1);
   kpl.Add(ls2);
   dataGrid1.ItemsSource= kpl;
   MessageBox.Show("");
}
Compiler meckert nicht, die MessageBox wird angezeigt, ohne daß vorher ein Fehler auftritt. Also sollte doch alles richtig sein. Aber der IE zeigt in dem Moment nichts mehr an und schreibt unten "Fehler auf der Seite".

Was ist falsch?
Danke - Günther
  Mit Zitat antworten

Anzeige

Alt 30.07.2010, 13:18   #2
Günther Weber
Stammgast
 
Günther Weber ist offline
Registriert seit: 26.02.2003
Ort: Hattingen
Beiträge: 1.110
Günther Weber befindet sich auf einem aufstrebenden Ast
Standard

Den Code hab ich von der Seite http://msdn.microsoft.com/de-de/libr...ce(VS.95).aspx abgeleitet.

Jetzt hab ich da gesehen, daß da noch ein Kommentar war:

Code:
// Set the ItemsSource to autogenerate the columns.
dataGrid1.ItemsSource = Customer.GetSampleCustomerList();
Also hab ich die Erzeugung der beiden Header (in MainPage()) einkommentiert. Die Meldung "Fehler auf der Seite" erscheint nicht mehr, aber meine Daten sind trotzdem nicht zu sehen.
  Mit Zitat antworten

Alt 30.07.2010, 13:19   #3
gfoidl
Stammgast
 
gfoidl ist offline
Registriert seit: 11.12.2007
Ort: Waidring / Tirol
Beiträge: 2.883
gfoidl befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

wie schaut denn das XAML dazu aus?

Ich würde die Daten auch nicht im Codebehind hinzufügen, sondern per Datenbindung (-> MVVM, hört sich kompliziert an ist es aber ganz und gar nicht). Speziell für Silverlight:
How to Implement MVVM, INotifyChanged and ICommand in a Silverlight Application


mfG Gü
__________________
"Programming today is a race between the programmers and software engineers to create better
and more idiot-proof programs, and the universe, creating bigger and better idiots. So far,
the universe is winning". - Rich Cook
  Mit Zitat antworten

Alt 30.07.2010, 13:32   #4
Günther Weber
Stammgast
 
Günther Weber ist offline
Registriert seit: 26.02.2003
Ort: Hattingen
Beiträge: 1.110
Günther Weber befindet sich auf einem aufstrebenden Ast
Standard

Code:
<data:DataGrid AutoGenerateColumns="False" Height="262" HorizontalAlignment="Left" Margin="507,155,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="231" />

Ich hab nur ein Datagrid auf mein Formular gezogen. Den Rest möchte ich im Quelltext zur Laufzeit machen, eigentlich sogar das Datagrid erst dort erzeugen.

Die Daten die da angezeigt werden sollen, möchte ich aus der csv Datei (die von gestern) auslesen. Die Headerdaten in Spalte 1, die Daten des (in Listbox1 und 2) ausgewählten Datensatzes sollen in Spalte 2 dargestellt werden.
  Mit Zitat antworten

Alt 30.07.2010, 13:45   #5
Günther Weber
Stammgast
 
Günther Weber ist offline
Registriert seit: 26.02.2003
Ort: Hattingen
Beiträge: 1.110
Günther Weber befindet sich auf einem aufstrebenden Ast
Standard

ok, jetzt hab ich gesehen was da steht: AutoGenerateColumns="False".

Hab das mal in True geändert, jetzt funktioniert was. Aber die Headertexte sind nicht die, die ich haben will (klar, woher soll er das wissen?), und er bringt mir 3 statt 2 Spalten. Und die Inhalte sind auch nicht die, die ich da angegeben habe.
Angehängte Grafiken
Dateityp: jpg Unbenannt-1.jpg (10,5 KB, 7x aufgerufen)
  Mit Zitat antworten

Alt 30.07.2010, 14:11   #6
gfoidl
Stammgast
 
gfoidl ist offline
Registriert seit: 11.12.2007
Ort: Waidring / Tirol
Beiträge: 2.883
gfoidl befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

kannst du mal eine Beispiel-CSV anhängen und probiere dann mal rum und zeig dir meine Lösung.


mfG Gü
__________________
"Programming today is a race between the programmers and software engineers to create better
and more idiot-proof programs, and the universe, creating bigger and better idiots. So far,
the universe is winning". - Rich Cook
  Mit Zitat antworten

Alt 30.07.2010, 14:39   #7
Günther Weber
Stammgast
 
Günther Weber ist offline
Registriert seit: 26.02.2003
Ort: Hattingen
Beiträge: 1.110
Günther Weber befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von gfoidl Beitrag anzeigen
Hallo,

kannst du mal eine Beispiel-CSV anhängen und probiere dann mal rum und zeig dir meine Lösung.


mfG Gü

Eigentlich darf ich das nicht. Du kannst jede beliebige csv Datei nehmen, der Aufbau ist ja immer gleich. Ich häng mal eine Datei an, aus der kein Betriebsgeheimnis hervorgeht. Also, im Menü wurde irgendwie Datensatz x ausgewählt. In dem Datagrid sollen nun die Daten dieses Datensatzes angezeigt werden. Im Bild ist ein Bildschirmausschnitt aus dem C# NET 2.0 Programm. Jetzt geht es um die Darstellung der unteren Tabelle. Die obere Tabelle möchte ich aber später auch anzeigen können.

Wenn ich - außerhalb dieser Tabellendarstellung - im Programm, wenn nach erfolgter Komponentenauswahl die eigentliche Berechnung stattfindet und anschließend eine Zeichnung erzeugt werden soll - mit so einer Datenbindung auch elegant direkt auf die Daten zugreifen kann, kann das sehr interessant werden.



Und nochmals Danke für die Hilfe
Günther
Angehängte Grafiken
Dateityp: jpg gewinde.jpg (17,6 KB, 6x aufgerufen)
Angehängte Dateien
Dateityp: zip GEWINDE.zip (480 Bytes, 1x aufgerufen)

Geändert von Günther Weber (04.08.2010 um 09:28 Uhr) Grund: Link entfernt um Ideenklau zu vermeiden
  Mit Zitat antworten

Alt 30.07.2010, 16:11   #8
gfoidl
Stammgast
 
gfoidl ist offline
Registriert seit: 11.12.2007
Ort: Waidring / Tirol
Beiträge: 2.883
gfoidl befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

musste noch was anderes vorher erledigen, aber ich hab mal einen Prototypen erstellt. Siehe Testseite. Wenn ich die Aufgabe richtig verstanden habe entferne ich den Link wieder und hänge das Projekt an. Das Projekt ist jetzt angehängt.

Leider sind bestimmte Dinge die bei WPF einfach sind bei SL nicht vorhanden - wie zB gewisse Dinge bez. Datenbindung

[offtopic]
Endlich mal eine gescheite Anwendung Das mit dem Katalog kann ich mir super vorstellen - gefällt mir die Idee (werde sie aber nicht klauen).

Was auch cool ist dass Silverlight keinen IIS-Webserver braucht.
[/offtopic]

mfG Gü
Angehängte Dateien
Dateityp: zip GüntherWeber.zip (22,1 KB, 5x aufgerufen)
__________________
"Programming today is a race between the programmers and software engineers to create better
and more idiot-proof programs, and the universe, creating bigger and better idiots. So far,
the universe is winning". - Rich Cook

Geändert von gfoidl (30.07.2010 um 16:49 Uhr)
  Mit Zitat antworten

Alt 30.07.2010, 16:40   #9
Günther Weber
Stammgast
 
Günther Weber ist offline
Registriert seit: 26.02.2003
Ort: Hattingen
Beiträge: 1.110
Günther Weber befindet sich auf einem aufstrebenden Ast
Standard

Ich hab jetzt auch ne ganze Weile mein künftiges Arbeitszimmer renoviert. Also total offtopic :-)

Du hast es absolut richtig verstanden. Du hängst Dein Programm hier als Zip an, wenn ich richti verstehe?

Danke, das wär Super.

[offtopic] Das Detailproblem "wie stelle ich Daten in einem Datagrid dar" ist natürlich nur ein winziger Schritt in so einem Programm. Ich hab also noch einiges vor mir...[/offtopic]

LG, Günther
  Mit Zitat antworten

Alt 30.07.2010, 16:52   #10
gfoidl
Stammgast
 
gfoidl ist offline
Registriert seit: 11.12.2007
Ort: Waidring / Tirol
Beiträge: 2.883
gfoidl befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

hab das Projekt oben angehängt. Umgebung: VS 2010 Ultimate (sollte aber keine Probleme bereiten - ev. die Code Contracts die ich verwendet habe (in 1 Zeile) kann aber durch throw new ArgumentNullException ersetzt werden, mir sind die CC lieber).

Klar hast du noch einiges vor dir. Aber das schöne an OOP ist dass sich schön Schritt für Schritt (Modul für Modul) entwickeln und testen lässt (auf Tests habe ich übrigens im Projekt verzichtet).


mfG Gü
__________________
"Programming today is a race between the programmers and software engineers to create better
and more idiot-proof programs, and the universe, creating bigger and better idiots. So far,
the universe is winning". - Rich Cook
  Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu



Alle Zeitangaben in WEZ +2. Es ist jetzt 03:51 Uhr.



© 1995–2009 Software & Support Verlag GmbH. Vervielfältigung nur mit Genehmigung des Verlags.