Хорошо ... Я предполагаю, что ваш реальный код исправил синтаксис, поскольку код, который вы вставили, не будет компилироваться.
Я поместил этот код в новое приложение WPF, и после добавления каждого объекта Person мой комбинированный список заполнялся нормально. Возможно, вы захотите переместить свой код заполнителя в событие Loaded, которое обеспечит правильную конструкцию формы. Вот исправленные xaml и codebehind (с несколькими ярлыками синтаксиса):
XAML:
<Grid>
<ComboBox Name="ComboBox1" Height="70"
DisplayMemberPath="Name"
SelectedValuePath="ID" />
</Grid>
отделенный код:
public Window1()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(Window1_Loaded);
}
void Window1_Loaded(object sender, RoutedEventArgs e)
{
var list = new List<Person>();
Person p = new Person(){Name = "aaaa",ID = "1111"};
list.Add(p);
p = new Person(){Name = "bbbb", ID="2222"};
list.Add(p);
p = new Person(){Name = "cccc", ID="3333"};
list.Add(p);
p = new Person(){Name = "dddd", ID="4444"};
list.Add(p);
ComboBox1.ItemsSource = list;
}