【发布时间】:2010-04-19 06:28:46
【问题描述】:
我无法让 System.Windows.Controls.Input 中的自动完成框按我的意愿工作。当我开始键入显示过滤列表的下拉部分时,它不显示我绑定到的属性,而是显示类名。
所以在下面的示例中,当我输入 my - 而不是显示“我的姓名”时,它显示的是 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;
我的xml:
<my:AutoCompleteBox Name="acbNames" ValueMemberPath="FullName" />
/* 输入'my'后,自动补全显示'MyNamespace.Person'而不是'My Name',但从列表中选择项目后显示'My Name' */
【问题讨论】:
标签: silverlight autocompletebox