将列添加到datagrid并更改标头

时间:2014-12-29 15:14:02

标签: c# wpf list datagrid

我创建了一个具有特定属性的对象列表,然后将其绑定到dataGrid 列的顺序并不像我预期的那样,因为我从基类继承了属性并将其他类添加到继承类中,所以我尝试手动更改顺序但是没有用。 所以,我的问题是当列表绑定到数据网格时如何更改列的顺序和标题。这是一个展示我想要实现的目标的例子:

    class Program
{
    void showData()
    {
        test2 t1 = new test2() { p1 = 1, p2 = 6, p3 = 9 };
        test2 t2 = new test2() { p1 = 4, p2 = 5, p3 = 6 };
        List<test2> l = new List<test2>();
        l.Add(t1);
        l.Add(t2);
        datagrid1.ItemsSource = l; // p3 appears in the first column of the grid but I want it to be in the last column
    }
}
class test
{
    public int p1 { get; set; }
    public int p2 { get; set; }
}
class test2 : test
{
    public int p3 { get; set; }
}

1 个答案:

答案 0 :(得分:1)

在控件的XAML部分中手动定义列:

    <DataGrid Name="datagrid1" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn Header="p1" Binding="{Binding p1}"/>
            <DataGridTextColumn Header="p2" Binding="{Binding p2}"/>
            <DataGridTextColumn Header="p3" Binding="{Binding p3}"/>
        </DataGrid.Columns>
    </DataGrid>