Hallo Zusammen,
ich benutze .NET Framework 4.5.2, VS 2015 Pro, Windows 7, WPF
Ich benötige aus einer DataGrid den einzelnen Zellinhalt, laufend über die Changed-Events des WPF-DataGrid.
Ich habe es auch geschafft, allerdings frage ich mich, ob es hier noch eine elegantere Lösung gibt wie unter WinForms?
Hier mein Code:
[highlight=csharp]
private DataRowView BeschDataRow { get; set; }
private int _columnIndex;
private int _rowIndex;
private void dataGridBesch_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
_rowIndex = dataGridBesch.SelectedIndex;
labelInformation.Content = Zelleintrag();
}
private void dataGridBesch_CurrentCellChanged(object sender, EventArgs e)
{
labelInformation.Content = Zelleintrag();
}
private string Zelleintrag()
{
BeschDataRow = dataGridBesch.Items[_rowIndex] as DataRowView;
DataGridCellInfo dgci = new DataGridCellInfo(dataGridBesch.Items, dataGridBesch.CurrentColumn);
_columnIndex = dgci.Column.DisplayIndex;
return BeschDataRow.Row[_columnIndex].ToString();
}
[/highlight]
Warum zwei Changed-Events?
==> Wird eine Zeile neu oder als erstes ausgewählt kommt erst CurrentCellChanged, hat aber noch keinen/neuen Zeilenindex. Dies wird durch SelectionChanged korrigiert.
Hat jemand eine bessere Logik?
Vielen Dank für Eure Hilfe!!!!
ich benutze .NET Framework 4.5.2, VS 2015 Pro, Windows 7, WPF
Ich benötige aus einer DataGrid den einzelnen Zellinhalt, laufend über die Changed-Events des WPF-DataGrid.
Ich habe es auch geschafft, allerdings frage ich mich, ob es hier noch eine elegantere Lösung gibt wie unter WinForms?
Hier mein Code:
[highlight=csharp]
private DataRowView BeschDataRow { get; set; }
private int _columnIndex;
private int _rowIndex;
private void dataGridBesch_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
_rowIndex = dataGridBesch.SelectedIndex;
labelInformation.Content = Zelleintrag();
}
private void dataGridBesch_CurrentCellChanged(object sender, EventArgs e)
{
labelInformation.Content = Zelleintrag();
}
private string Zelleintrag()
{
BeschDataRow = dataGridBesch.Items[_rowIndex] as DataRowView;
DataGridCellInfo dgci = new DataGridCellInfo(dataGridBesch.Items, dataGridBesch.CurrentColumn);
_columnIndex = dgci.Column.DisplayIndex;
return BeschDataRow.Row[_columnIndex].ToString();
}
[/highlight]
Warum zwei Changed-Events?
==> Wird eine Zeile neu oder als erstes ausgewählt kommt erst CurrentCellChanged, hat aber noch keinen/neuen Zeilenindex. Dies wird durch SelectionChanged korrigiert.
Hat jemand eine bessere Logik?
Vielen Dank für Eure Hilfe!!!!
Comment