Лучший отвечающий
Данные из строки DataGrid WPF

Вопрос
-
Как можно получить данные из выделенной строки (3 соседних ячейки) в DataGrid, чтобы их в дальнейшем использовать? Источником данных в DataGrid является DataTable.
Спасибо!- Перемещено Tagore Bandlamudi 2 октября 2010 г. 21:50 MSDN Forums consolidation (От:Разработка Windows-приложений)
16 апреля 2010 г. 9:19
Ответы
-
Попробуйте так
DataRowView rowView = (DataRowView)dataGrid1.SelectedItem; DataRow row = rowView.Row; row["LastName"] = "New value";
- Предложено в качестве ответа Megano 19 апреля 2010 г. 10:09
- Помечено в качестве ответа Vitaly Lisapov 19 апреля 2010 г. 10:46
16 апреля 2010 г. 11:54
Все ответы
-
Попробуйте так
DataRowView rowView = (DataRowView)dataGrid1.SelectedItem; DataRow row = rowView.Row; row["LastName"] = "New value";
- Предложено в качестве ответа Megano 19 апреля 2010 г. 10:09
- Помечено в качестве ответа Vitaly Lisapov 19 апреля 2010 г. 10:46
16 апреля 2010 г. 11:54 -
DataRowView rowView = (DataRowView)dataGrid1.SelectedItem;
DataRow row = rowView.Row;
row["LastName"] = "New value";Как я понимаю, вы здесь устанавливаете новое значение для строки со столбцом "LastName". А можно ли сделать наоборот
tb.Text=row["LastName"]?
Спасибо!16 апреля 2010 г. 12:16 -
Естественно, свойство работает как на set так и на get
только нужно явно привести к требуемому типу
tb.Text=(string)row["LastName"];
16 апреля 2010 г. 12:26 -
добавил это код в событие DataGrid SelectionChanged, но вот здесь возникает exception при клике по строке:
DataRow row = rowView.Row;
NullReferenceException was unhandled. Object reference not set to an instance of an object.
Спасибо!16 апреля 2010 г. 12:55 -
У меня подобной шибки не возникает, надо смотреть код.
private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e) { DataRowView rowView = (DataRowView)dataGrid1.SelectedItem; DataRow row = rowView.Row; System.Windows.MessageBox.Show((string)row["LastName"]); } private void Window_Loaded(object sender, RoutedEventArgs e) { DataTable table = new DataTable(); table.Columns.Add("LastName"); table.Columns.Add("FirstName"); for (int i = 0; i < 10; i++) { table.Rows.Add(string.Format("name{0}", i), string.Format("sname{0}", i)); } dataGrid1.ItemsSource = table.DefaultView; }
можете так же скачать проект для ознакомления
16 апреля 2010 г. 13:38