DataGrid AutoGenerateColumns ="True" - 如何附加一个额外的列?

jav*_*red 5 c# wpf datagrid

我正在使用DataGrid与AutoGenerateColumns ="True".现在除了自动生成的列,我想添加一个我的"自定义"列,即所谓的"服务"列.(在其中我想要几个超链接"开始""停止""重置").

如何添加添加列?

我找到了这个网页http://msdn.microsoft.com/ru-ru/library/system.windows.controls.datagrid.autogeneratecolumns.aspx介绍如何修改或删除列,但我找不到如何添加列.

Ada*_*kis 8

您应该能够像往常一样在设计器中添加列.它只会将该列附加到所有生成的列.

编辑

对不起,我假设了WinForms.同样的想法,只需将列直接添加到XAML:

    <DataGrid AutoGenerateColumns="True" ItemsSource="{Binding Src}" x:Name="Grid">
        <DataGrid.Columns>
            <DataGridCheckBoxColumn Header="Junk"></DataGridCheckBoxColumn>
            <DataGridHyperlinkColumn Header="Junk2"></DataGridHyperlinkColumn>
        </DataGrid.Columns>
    </DataGrid>
Run Code Online (Sandbox Code Playgroud)

这是ViewModel:

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; }
}
Run Code Online (Sandbox Code Playgroud)

这是它显示的内容:

在此输入图像描述

  • 正如Christopher所提到的,这会将XAML指定的列添加到表的开头.要移动它们,而不是在C#中定义列,在"AutoGeneratedColumns"的处理程序中,您可以更改其DisplayIndex:`table.Columns [0] .DisplayIndex = table.Columns.Count - 1` (3认同)