我遇到麻煩自動完成框System.Windows.Controls.Input工作,我想。當我開始輸入顯示過濾列表的下拉部分不顯示我綁定的屬性時,它會顯示類名稱。Autocompletebox文本在Silverlight
所以在下面的例子中,我在我喜歡的類型 - 而不是顯示「我的名字」它顯示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" />
/*進入 '我的',自動完成顯示 'MyNamespace.Person',而不是之後的'我的名字',但從列表中選擇項目後顯示'我的名字'*/
我還發現了一些其他方法,如果我提供我自己的實現的ToString()或使用的TypeConverter,我也能解決這個問題。 – 2010-04-23 04:48:50