6
votes

DataGrid Autogeneratecolumns = "vrai" - Comment ajouter une colonne supplémentaire?

J'utilise DataGrid avec AUTOGENERATECOLUMNS = "vrai". Maintenant, en plus des colonnes générées automatiquement, je souhaite ajouter une colonne «personnalisée», appelée colonne «Service». (En You, je veux avoir plusieurs hyperliens "Démarrer" "STOP" "RESET").

Comment ajouter une colonne d'addition?

J'ai trouvé cette page http: // msdn.microsoft.com/ru-ru/library/system.windows.controls.datagrid.Autogeneratecolumns.aspx décrivant comment modifier ou supprimer la colonne, mais je ne trouve pas comment ajouter une colonne.


0 commentaires

3 Réponses :


8
votes

Vous devriez être capable d'ajouter une colonne dans votre concepteur comme toujours. Ça va simplement ajouter cette colonne à tous les produits générés.

EDIT FORT> P>

Désolé, j'ai supposé WinForms. Même idée, cependant, ajoutez simplement les colonnes directement au xaml: p>

public class ViewModel
{
    public ViewModel()
    {
        Src = new ObservableCollection<Item>() { new Item { Id = 1, Name = "A" }, new Item { Id = 2, Name = "B" } };
    }

    public ObservableCollection<Item> Src { get; set; }
}

public class Item{
    public int Id { get; set; }
    public string Name { get; set; }
}


1 commentaires

Comme Christopher mentionne, cela ajoute des colonnes spécifiées par XAML au début de la table. Pour les déplacer, sans recourir à la définition des colonnes en C #, dans le gestionnaire pour autogogeneratedColumns Vous pouvez modifier son displayindex: table.Columns [0] .Displayindex = Table.Columns.Compte - 1



3
votes

Vous pouvez soit l'ajouter dans XAML à l'aide de ou vous pouvez le faire en code.

Gardez à l'esprit que si vous le faites dans XAML, par défaut, il va mettre la colonne au début des colonnes, c'est-à-dire avant de produire.

Alternativement, vous pouvez l'ajouter en code et utiliser spécifiquement l'événement autogogeneratedcolumns et et le code là-bas et il apparaîtra comme la dernière colonne.


0 commentaires

0
votes

Avez-vous un jeu de données que vous utilisez comme DataSource?

Si tel est le cas, le moyen plus facile d'ajouter la colonne de l'interface graphique Visual Studio, définissez le nom et la date de données sur quelque chose que vous pouvez reconnaître, puis ajouter Cette colonne sur la colonne Dataset, P>

//Assumes you added a column that you named 'clNew'
//Assumes you have one table in your dataset that the DGV is bound to
clNew.Name = "clNew";
clNew.DataPropertyName = "clNew";

ds.Tables[0].Columns.Add("clNew");


0 commentaires