如何在自动完成文本框中绑定Observable集合?

时间:2011-09-26 18:14:07

标签: wpf autocomplete

我需要将一个Observable集合绑定到WPF应用程序中的AutoComplete Text框。但是当我在设计器中绑定后运行应用程序时,我在下拉列表中显示了我的完整BL类参考。如何避免这种行为?另外,我想在下拉列表中显示一些其他属性(作为详细信息视图),一旦从List中选择一个项目,我应该能够获得对象的Other属性。有人可以附带代码片段吗?

2 个答案:

答案 0 :(得分:0)

在没有看到你的代码的情况下,我假设你的ObservableCollection是一个用户定义的对象,你将ItemsSource绑定到ObservableCollection而不提供DataTemplate。然后,DataTemplate中的控件将绑定到ObservableCollection中存储的对象的公共属性。

DataTemplate还允许您在下拉列表框中显示所需的所有属性。由于我不知道你正在使用的自动完成文本框,我无法真正举例说明DataTemplate。

以下是ListBox 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

答案 1 :(得分:0)

ItemTemplate中有AutoCompleteTextBox个属性。您可以使用它在下拉列表中显示您想要的任何内容。