none
Данные из строки DataGrid WPF RRS feed

  • Вопрос

  • Как можно получить данные из выделенной строки (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