2010-04-19 78 views
2

我遇到麻煩自動完成框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',而不是之後的'我的名字',但從列表中選擇項目後顯示'我的名字'*/

回答

3

事實證明我需要使用AutoCompleteBox的下拉部分的ItemTemplate,因此它的xaml現在是如下:

<my:AutoCompleteBox Name="acbNames" ValueMemberBinding="{Binding FullName}"> 
      <my:AutoCompleteBox.ItemTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding FullName}"/> 
       </DataTemplate> 
      </my:AutoCompleteBox.ItemTemplate> 
     </my:AutoCompleteBox> 
+0

我還發現了一些其他方法,如果我提供我自己的實現的ToString()或使用的TypeConverter,我也能解決這個問題。 – 2010-04-23 04:48:50

1

我有同樣的問題。我解決它使用的控件樣式

這是一個靜態資源我使用的樣式:

<Style x:Key="autocomplete" TargetType="sdk1:AutoCompleteBox"> 
     <Setter Property="Margin" Value="5,0,5,0"/> 
     <Setter Property="MinWidth" Value="100"/> 
     <Setter Property="VerticalAlignment" Value="Center"/> 
     <Setter Property ="HorizontalAlignment" Value="Right"/> 
    </Style> 

如果我不使用這種風格,因爲我在DataItem的配置我海關項目顯示不正確,而是顯示類名。

2

是的,你的問題是因爲你沒有把項目模板。 但是,如果你把項目模板,並仍然有問題閱讀桑德羅已經寫了什麼。

我有同樣的問題。我解決它使用的控件樣式

這是一個靜態資源我使用的樣式:

<Style x:Key="autocomplete" TargetType="sdk1:AutoCompleteBox"> 
    <Setter Property="Margin" Value="5,0,5,0"/> 
    <Setter Property="MinWidth" Value="100"/> 
    <Setter Property="VerticalAlignment" Value="Center"/> 
    <Setter Property ="HorizontalAlignment" Value="Right"/> 
</Style> 

如果我不使用這種風格,因爲我在DataItem的配置我海關項目顯示不正確,而是顯示類名。

份額|編輯

這對我的作品太多,但只有當我從應用工具包一些自定義主題風格。 有當您使用的主題從工具箱

最佳,

debarisi

相關問題