У меня проблемы с получением окна автозаполнения в System.Windows.Controls.Input работает, как я хочу. Когда я начинаю вводить раскрывающийся раздел, в котором отображается отфильтрованный список, не отображается свойство, к которому я привязываюсь, вместо этого отображается имя класса.
Так, в приведенном ниже примере, когда я набираю свой - вместо того, чтобы показывать «Мое имя», он показывает MyNamespace.Person. Однако, когда я выбираю элемент из списка автозаполнения, он отображает свойство FullName в текстовом поле. Я уверен, что где-то отсутствует простое свойство автозаполнения поля, но я его не вижу.
Пример кода:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName
{
get { return string.Format("{0} {1}", FirstName, LastName); }
}
}
В своем коде xaml я создаю несколько объектов Person, сохраняю их в списке и связываю этот список с полем автозаполнения
List<Person> people = new List<Person>();
people.Add(new Person { FirstName = "My", LastName = "Name" });
people.Add(new Person { FirstName = "Fernando", LastName = "Torres" });
acbNames.ItemsSource = people;
Мой xaml:
<my:AutoCompleteBox Name="acbNames" ValueMemberPath="FullName" />
/ * после ввода «my» при автоматическом заполнении вместо «My Name» отображается «MyNamespace.Person», но после выбора элемента из списка отображается «My Name» * /