Fragensteller
Werte aus DataGrid auslesen

Frage
-
Salü alle zusammen
Ich habe bereits stundenlang gegoogelt und einige Beiträge zum DataGridView gefunden, nicht aber zu meinem Datagrid das ich verwende.
Ich habe ein DataGrid und möchte den wert der markierten Zeile aus Spalte 3 erhalten. Folgendes habe ich an XAML Code:
<DataGrid x:Name="dgBericht" AutoGenerateColumns="False" ItemsSource="{Binding Source ={StaticResource BerichtVersand},XPath=//Patient}" SelectionChanged="dgBericht_SelectionChanged"> <DataGrid.Columns > <DataGridTextColumn Header="Patient" Width="110" Binding="{Binding XPath=Name}"></DataGridTextColumn> <DataGridTextColumn Header="Bericht" Width="220" Binding="{Binding XPath=Bericht}"></DataGridTextColumn> <DataGridTextColumn Header="ID" Width="30" Binding="{Binding XPath=BerichtID}"></DataGridTextColumn> </DataGrid.Columns> </DataGrid>
In einem Button habe ich folgendes probiert, leider alles erfolglos:
private void btnOeffnen_Click(object sender, RoutedEventArgs e) { if (dgBericht.SelectedIndex == -1) { MessageBox.Show("Es muss eine Zeile ausgewählt werden"); } else { int vRow = dgBericht.SelectedIndex; int vCol = 2; Object vWert = dgBericht.SelectedItem ; object vWert2 = dgBericht.CurrentItem; //string vWert3 = dgBericht.SelectedItem[1]; //string vWert4 = dgBericht.Rows[vRow][BerihtID].ToString(); //object vWert4a = dgBericht[vRow],[BerihtID]; object vWert5 = dgBericht.Items[vRow].ToString(); //object vWert6 = dgBericht.Items[dgBericht.CurrentCell.Item[2]]; string vWert6 = dgBericht.rows MessageBox.Show("Ausgelesen"); } }
Am interessantesten scheint mir SelectedItem zu sein, denn dort sehe ich beim Debuggen, dass die Werte vorhanden sind. Aber wie lese ich diese aus?
Vielen Dank für einen Hinweis
Seit herzlichst gegrüsst
Alle Antworten
-
Hallo Sabrina,
ich habe hier einen code aus einem älteren Programm von mir. Vielleicht hilft der Dir weiter. Ich benutze heute nur noch das DataGridView, weil mehr Möglichkeiten.
Nachtrag.
Dieser Code ist nur gültig für das DataGrid Steuerelement (Windows.Forms)
Private Sub DataGrid1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGrid1.MouseMove ' ' Zellenkoordinaten lesen ' Dim hti As DataGrid.HitTestInfo = Me.DataGrid1.HitTest(e.X, e.Y) Dim item As String = String.Empty If hti.Type = DataGrid.HitTestType.Cell Then 'nicht behandeltes DBnull im Grid Dim obj As Object = DataGrid1.Item(hti.Row, hti.Column) If TypeOf obj Is System.DBNull Then Exit Sub item = CType(DataGrid1.Item(hti.Row, hti.Column), String)
Und hier ein Beispiel für das DataGridView (Windows.Forms)
Gruss Ellen
Ich benutze/ I'm using VB2008 & VB2010
- Bearbeitet Ellen Ramcke Mittwoch, 22. August 2012 16:17
-
Salü Ellen
Vielen lieben Dank für Deinen Beispielcode.
Wenn ich Dich richtig verstehe, dann ist die DataGridView neuer als DataGrid? Ist denn die DataGridView auch xaml? Wenn ich <DataGridView></DataGridView> eingebe, dann sagt er mir, dass er das nicht kennt.
Mein DataGrid kennt kein .Item, nur ein .Items.
Viele liebe Grüsse
Sabrina -
Salü Ellen
Vielen lieben Dank für Deinen Beispielcode.
Wenn ich Dich richtig verstehe, dann ist die DataGridView neuer als DataGrid? Ist denn die DataGridView auch xaml? Wenn ich <DataGridView></DataGridView> eingebe, dann sagt er mir, dass er das nicht kennt.
Mein DataGrid kennt kein .Item, nur ein .Items.
Viele liebe Grüsse
SabrinaHi Sabine,
Du solltest Deine Frage besser hier stellen: http://social.msdn.microsoft.com/Forums/de-DE/wpfde/threads
Ich bin irrtümlich davon ausgegangen dass Du ein Forms Projekt schreibst. In Windows.Forms gibt es das Steuerelement DataGrid, welches von DataGridView abgelöst wurde.
Mein code ist für ein WPF Projekt nicht anwendbar. Sorry.
Gruss Ellen
Ich benutze/ I'm using VB2008 & VB2010