2009-09-16 5 views
0

Как найти значение некоторого столбца из DataView.CurrentItem.Получение значения из DataView C#

+1

Там не является членом DataView имени CurrentItem. Вы имеете в виду DataView indexer? Или DataGrid.CurrentRow или DataGridView.CurrentRow? –

+0

Простите, что это не DataView.CurrentItem это CollectionViewSource.CurrentItem –

+0

Я понял, что теперь я использую dt.Rows [CollectionViewSource.CurrentPosition] ["ColumnName"]. ToString(), есть лучший способ сделать то же самое –

ответ

1

Как отметил Павел в своем комментарии, в классе DataView нет CurrentItem.

Если вы знаете индекс элемента, вы можете получить доступ столбца по имени, как показано ниже:

string name = dataView[index]["Name"] as string; 

Точно так же, если у вас есть экземпляр DataRowView (вида на DataRow), вы можете сделать это:

string name = dataRowView["Name"] as string; 

EDIT: Я просто заметил, что тег WPF на ваш вопрос ... может быть, вы говорите о CollectionView, а не DataView?

CollectionView не имеет "столбцов" как таковых, но может быть представлен в GridView или DataGrid (оба из которых имеют столбцы). Это просто взгляд на коллекцию объектов. Чтобы получить доступ к определенному полю или свойству текущего объекта, есть два основных варианта:

  • если вы статически знать фактический тип элементов коллекции: закиньте CurrentItem к этому типу, и иметь прямой доступ к членам вам нужно
  • , если вы не знаете тип, вы можете использовать отражение на CurrentItem, чтобы получить доступ к его свойствам, полям по имени
+0

Спасибо много, я использую следующий dt.Rows [CollectionViewSource.CurrentPosition] ["ColumnName"]. ToString(), где colloectionViewSource привязан к DataContext. –

Смежные вопросы