Autor Beitrag
Chrizzo
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 18.04.12 10:19 
Hi Leute,

hoffe ich poste im richtigen Teil des Forums.
Ich habe einen argen Hirnknoten was die Verwendung des Datagrids des CompactFrameworks angeht.
Hier erst mal Randdaten: In dem DataGrid sollen Daten angezeigt werden, welche ich von einem Webservice als DataTable geliefert bekomme. Nur will ich einige Aktionen im DataGrid ausführen können, wie z.B. Spalten ein- und ausblenden, Spalten sortieren usw. Dies funktioniert soweit auch, nur bin ich mir so im großen und ganzen nicht sicher ob ich die Sache überhaupt richtig angehe.

Ich initialisiere wie folgt (beispielhaft):
ausblenden C#-Quelltext
1:
2:
3:
myDataTable = dataTablevonWebService;
myTableStye.MappingName = myDataTable.Tablename;
myDataGrid.DataSource = myDataTable;

---> über den Tablestyle entscheide ich nun aufgrund einer Liste welche Columns angezeigt werden sollen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
            if (StyleList.Count != 0)
            {
                for (int i = 0; i < StyleList.Count; i++)
                {
                    if (myDataTable.Columns.Contains(StyleList[i].Name)) //Name ist ein ColumnName der DataTable
                    {
                        string colName = StyleList[i].Name;
                        DataGridColumnStyle cStyle = new DataGridTextBoxColumn();
                        cStyle.MappingName = colName;
                        cStyle.HeaderText = colName;
                        cStyle.NullText = String.Empty;
                        myTableStyle.GridColumnStyles.Add(cStyle);
                    }
                }
                
                myDataGrid.TableStyles.Add(myTableStyle);
                myDataGrid.DataSource = myDataTable;
            }

---> Funktioniert auch soweit gut.

Nun stelle ich mir aber die Frage wie sich das mit den Daten verhält, und zwar möchte ich aufgrund der Auswahl der DataRow einen bestimmten Wert von einer Column übergeben, die jedoch so nicht eingeblendet ist. Was ich daran nicht verstehe, ob ich überhaupt auf diesem Weg an irgendwelche Daten rankommen kann, oder nicht, Vorallem dann wenn ich im DataGrid sortiere, da ja dann der RowIndex des Grids nicht mit dem Index des DataTables übereinstimmt.

Also meine Vorstellung ist so (und hier liegt wahrscheinlich der Hase begraben): Ich blende nur die Columns ein, die ich möchte (über TableStyle), kann aber aufgrund der Ansicht und der Auswahl einer Row problemlos im Hintergrund auf die kompletten RowDaten zugreifen.

Ich würde mich sehr freuen wenn Ihr mir aus dem Schlamassel raushelfen könntet.

Viele Grüße

Chris

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Chrizzo Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 18.04.12 14:37 
Hi Leute,

konnte die Frage selbst beantworten :) :) Try-And-Error :)

hab anstatt myDataGrid.DataSource = myDataTable nen DataView übergeben :)

Moderiert von user profile iconTh69: C#-Tags hinzugefügt