2009-09-16 8 views
0

Comment rechercher une valeur de colonne dans DataView.CurrentItem.Obtention de valeur à partir de DataView C#

+1

Il n'y a aucun membre DataView nommé CurrentItem. Voulez-vous dire DataView indexer? Ou un DataGrid.CurrentRow ou DataGridView.CurrentRow? –

+0

Désolé, ce n'est pas DataView.CurrentItem c'est CollectionViewSource.CurrentItem –

+0

J'ai compris maintenant que j'utilise dt.Rows [CollectionViewSource.CurrentPosition] ["ColumnName"]. ToString(), est-il un meilleur moyen de faire la même chose –

Répondre

1

Comme Paul l'a souligné dans son commentaire, il n'y a aucun membre CurrentItem dans la classe DataView.

Si vous connaissez l'index de l'élément, vous pouvez accéder à une colonne par son nom comme indiqué ci-dessous:

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

De même, si vous avez une instance d'un DataRowView (vue d'un DataRow), vous pouvez le faire:

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

EDIT: Je viens de remarquer l'étiquette WPF sur votre question ... peut-être vous parlez d'un CollectionView, pas DataView?

CollectionView n'a pas de "colonnes" en soi, mais il peut être représenté dans un GridView ou DataGrid (qui ont tous les deux des colonnes). C'est juste une vue sur une collection d'objets. Pour accéder à un domaine spécifique ou propriété de l'objet en cours, il y a deux options principales:

  • si vous savez statiquement le type réel des objets de collection: définissaient les CurrentItem à ce type, et accéder directement aux membres dont vous avez besoin
  • si vous ne connaissez pas le type, vous pouvez utiliser la réflexion sur le CurrentItem pour accéder à ses propriétés ou champs par nom
+0

Merci beaucoup, j'utilise dt.Rows suivant [CollectionViewSource.CurrentPosition] ["ColumnName"]. ToString() où colloectionViewSource est lié à DataContext. –

Questions connexes