Как связать наблюдаемую коллекцию в текстовое поле автозаполнения? - PullRequest
1 голос
/ 26 сентября 2011

Мне нужно привязать коллекцию Observable к моему текстовому полю автозаполнения в приложении WPF. Но когда я запускаю приложение после связывания в конструкторе, в раскрывающемся списке я получаю отображение с полным справочником класса BL. Как избежать этого поведения? Также я хочу показать некоторые другие свойства в раскрывающемся списке (в виде подробностей), и я должен иметь возможность получить другие свойства объекта, как только я выберу элемент из списка. Кто-нибудь может прийти с фрагментом кода?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2011

В AutoCompleteTextBox имеется ItemTemplate свойство.Вы можете использовать это, чтобы отобразить все, что вы хотите в раскрывающемся списке.

0 голосов
/ 26 сентября 2011

Не видя ваш код, я предполагаю, что ваша ObservableCollection является пользовательским объектом, и вы связываете ItemsSource с ObservableCollection и не предоставляете DataTemplate.Элементы управления в DataTemplate будут тогда привязаны к открытым свойствам объекта, хранящегося в ObservableCollection.

DataTemplate также позволит вам показать все свойства, которые вы хотите в раскрывающемся списке.Поскольку я не знаю об используемом вами текстовом поле для автозаполнения, я не могу привести пример DataTemplate.

Вот простой пример шаблона данных ListBox:

<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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...