我创建了一个具有特定属性的对象列表,然后将其绑定到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; }
}
答案 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>