2011-09-26 73 views
1

我需要將一個Observable集合綁定到WPF應用程序的自動完成文本框中。但是當我在設計器中綁定後運行應用程序時,我在下拉列表中顯示了我的完整BL類參考。如何避免這種行爲?另外我想在下拉列表中顯示一些其他屬性(如細節視圖),一旦從列表中選擇一個項目,我應該能夠獲得對象的其他屬性。有人可以帶有代碼片段嗎?如何綁定自動完成文本框中的Observable集合?

+0

您是否使用wpf工具包或.Net 4.0框架的內置自動完成文本框?還是你創造它作爲你自己的? –

+0

是的,我正在使用WPF工具包內置的AutoCompleteBox。 – saravana

回答

0

AutoCompleteTextBox中有ItemTemplate財產。您可以使用它在下拉列表中顯示您想要的任何內容。

0

沒有看到您的代碼,我假設您的ObservableCollection是一個用戶定義的對象,並且您將ItemsSource綁定到ObservableCollection並且不提供DataTemplate。 DataTemplate中的控件將綁定到存儲在ObservableCollection中的對象的公共屬性。

DataTemplate還允許您在下拉列表框中顯示所需的所有屬性。由於我不知道你正在使用的自動完成文本框,所以我無法給出一個DataTemplate的例子。

這裏是一個列表框DataTemplate中的一個簡單的例子:

<ListBox Width="400" Margin="10" 
    ItemsSource="{Binding Source={StaticResource myTodoList}}"> 
    <ListBox.ItemTemplate> 
    <DataTemplate> 
     <StackPanel> 
     <TextBlock Text="{Binding Path=TaskName}" /> 
     <TextBlock Text="{Binding Path=Description}"/> 
     <TextBlock Text="{Binding Path=Priority}"/> 
     </StackPanel> 
    </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

這裏是一個鏈接,會給你你需要的所有信息:http://msdn.microsoft.com/en-us/library/ms742521.aspx

+0

定義一個項目模板後,它現在正在工作。感謝Josh和AngelWPF。 saravana

相關問題