C# WPF DataGridComboxColumn不工作

C# WPF DataGridComboxColumn不工作,c#,wpf,datagrid,datagridcomboboxcolumn,C#,Wpf,Datagrid,Datagridcomboboxcolumn,我有一个名为Person的类和一个名为People的列表,如下所示: namespace WpfApplication1 { public partial class MainWindow : Window { public List<Person> People; public MainWindow() { InitializeComponent(); People

我有一个名为Person的类和一个名为People的列表,如下所示:

namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        public List<Person> People;

        public MainWindow()
        {
            InitializeComponent();

            People = new List<Person>();
            People.Add(new Person() { ID = 1, Name = "John" });
            People.Add(new Person() { ID = 2, Name = "Mike" });
        }
    }

    public class Person
    {
        public int ID { get; set; }
        public string Name { get; set; }
    }
}
我想在DataGrid中显示2人,使用组合框在2人之间进行选择

<DataGrid x:Name="dataGrid1" Height="300">
    <DataGridComboBoxColumn Header="Name" DisplayMemberPath="Name" SelectedItemBinding="{Binding Path=Name}">
        <DataGridComboBoxColumn.EditingElementStyle>
            <Style TargetType="ComboBox">
                <Setter Property="ItemsSource" Value="{Binding Path=People}"/>
            </Style>
        </DataGridComboBoxColumn.EditingElementStyle>
        <DataGridComboBoxColumn.ElementStyle>
            <Style TargetType="ComboBox">
                <Setter Property="ItemsSource" Value="{Binding Path=People}"/>
            </Style>
        </DataGridComboBoxColumn.ElementStyle>
    </DataGridComboBoxColumn>
</DataGrid>
但是DataGrid根本不显示任何内容。有什么问题吗?

它不应该在标签内吗

人必须是财产,而不是田地。 您必须先填充集合,然后再将其分配给人员,或者必须用ObservableCollection替换列表,以便网格将检测您添加的项。 必须在调用InitializeComponent之前分配人员,或者包含属性的类必须实现INotifyPropertyChanged,并在分配人员时激发PropertyChanged,以便网格检测新集合。 正如@Koen所指出的,您的列定义必须由一个标记共同包围。
它确实提供了部分答案,因为作者的代码在包装列定义之前无法工作,但还有其他问题。