2010-07-09 4 views
0

Je ne sais pas où chercher celui-ci ... J'ai un viewmodel qui a un DataRow sous-jacent fournissant une partie du modèle. Je veux afficher cette information sous la forme d'un seul enregistrement, dans une disposition verticale. J'ai prévu d'utiliser le DataGrid car je souhaite que l'utilisateur puisse ajouter/supprimer/renommer des lignes à travers le DataTable, même s'il ne regarde qu'un seul enregistrement. Je ne suis pas sûr de savoir comment y parvenir. Exemple de ce que je me attends est ci-dessous:WPF Représentation verticale d'un DataRow

Tableau Source des données
ID, Nom, Valeur
1, un, 1
2, Deux, 2

prévu dans mon interface utilisateur serait une table ressemblant à ce qui suit


ID | 1


Nom | Un


Valeur | 1


Répondre

1

Vous pouvez exposer DataRow comme une liste de champs:

public class DataRowField 
{ 
    public int Index { get; set; } 
    public string Name { get; set; } 
    public object Value { get; set; } 
} 


public IEnumerable<DataRowField> Fields 
{ 
    get 
    { 
     return _dataRow.Table.Columns.Cast<DataColumn>() 
       .Select((column, i) => new DataRowField 
       { 
        Index = i, 
        Name = column.ColumnName, 
        Value = _dataRow[column] 
       }); 
    } 
} 

Ensuite il vous suffit de lier votre DataGrid à la propriété Fields