提问者:小点点

如何在WPF中正确地将行添加到datagrid中?


我有一个DataGrid:

代码:

        <DataGrid Name="DatabaseView1" Grid.Row="1">
            <DataGrid.Columns>
                <DataGridTextColumn Header="First name" Binding="{Binding Path=FirstName}"/>
                <DataGridTextColumn Header="Last name" Binding="{Binding Path=LastName}"/>
                <DataGridTextColumn Header="Age" Binding="{Binding Path=Age}"/>
            </DataGrid.Columns>
        </DataGrid>

此datagrid一个接一个地包含多个条目。我收集列表中的条目:

        public static List<Entry> Entries = new List<Entry>();
        public class Entry
        {
            public string FirstName { get; set; }
            public string Lastname { get; set; }
            public int Age { get; set; }
        }

我添加一个新条目,如下所示:

Entries.Add(new Entry {FirstName = "Christiano", LastName = "Ronaldo", Age = "35"});

我将以下条目添加到DataGrid:

DatabaseView1.ItemsSource = Entries;

这是我的结果:

您会看到创建了两个条目。有人知道为什么会这样吗?

提前谢谢你。


共1个答案

匿名用户

正在生成双列,因为您尚未通知DataGrid停止为已分配的ItemSource自动生成列。因此,要禁用autoGenerateColumns,只需在xaml DataGrid中设置autoGenerateColumns=false即可。

<DataGrid Name="DatabaseView1" Grid.Row="1" AutoGenerateColumns = "False">