Я новичок в WPF. Я пытаюсь прочитать выбранные элементы Datagrid с помощью DataRow/DataRowView. Мой код следующий:
foreach (System.Data.DataRowView row in dgDocument.SelectedItems)
{
txtPhotoIDNo.Text = row["PhotoIdNumber"].ToString();
}
но я столкнулся со следующей ошибкой -
«Невозможно преобразовать объект типа «‹>f__AnonymousTypeb
11[System.String,System.Byte,System.String,System.String,System.String,System.Byte[],System.Nullable
1[System.DateTime],System.String,System.Nullable`1[System.DateTime],System.String,System.String]» в тип «System.Data.DataRowView» ."
Когда я пытаюсь использовать следующий путь, это работает нормально.
(dgDocument.SelectedCells[2].Column.GetCellContent(item) as TextBlock).Text;
Проблема в том, что когда мне нужно было добавить новый столбец/изменить положение столбца в сетке данных, мне нужно было изменить индекс для всего назначенного значения. Чтобы решить эту проблему, я хочу присвоить значение вышеупомянутым способом с именем столбца.
DataGrid
не имеет ничего общего сSystem.Data
/DataTable
и т. д. СвойствоSelectedItems
содержит фактические объекты, которые вы добавили в сетку (которые в данном случае кажутся анонимными типами). Вы должны изучить привязку данных - вы не должны пытаться установить текст прямо так. - person Charles Mager   schedule 02.04.2016