В одной из моих предыдущих публикаций в блоге я рассказал о RadAutoCompleteBox, показывающем, как отображать предложения с использованием списка строк.
У меня было требование привязать пользовательские объекты к списку предложений к RadAutoCompleteBox, и мне потребовалась помощь команды поддержки Telerik, чтобы это сделать.
Проще говоря, команда поддержки Telerik супер.
Чтобы связать пользовательские бизнес-объекты, необходимо выполнить 3 шага
1. Установите источник предложений в список пользовательских объектов
2. Установите FilterKeyPath
3. Создайте SuggestionItemTemplate и DataTemplate и привяжите свойство, которое должно отображаться как предложение.
Ниже приведен пример исходного кода, который использует пользовательские объекты для отображения предложения.
<telerikInput:RadAutoCompleteBox Height="70" HorizontalAlignment="Left" Margin="17,31,0,0" Name="radAutoCompleteBox1" Text="" VerticalAlignment="Top" Width="429" FilterKeyPath="Name" > <telerikInput:RadAutoCompleteBox.SuggestionItemTemplate> <DataTemplate> � <TextBlock Text="{Binding Name}"/> � </DataTemplate> � </telerikInput:RadAutoCompleteBox.SuggestionItemTemplate> � </telerikInput:RadAutoCompleteBox>
public partial class MainPage : PhoneApplicationPage � { � // Constructor � public MainPage() � { � InitializeComponent(); � radAutoCompleteBox1.SuggestionsSource = Data.GetSuggestions(); � } � } � public class Employee � { � public string Name � { � get; � set; � } public string ID � { � get; � set; � } } � public static class Data � { � public static List<Employee> GetSuggestions() � { � List<Employee> Names = new List<Employee>(); � Names.Add(new Employee { Name = "Vijay", ID = "1" }); � Names.Add(new Employee { Name = "Senthil", ID = "2" }); � Names.Add(new Employee { Name = "Surya", ID = "3" }); � Names.Add(new Employee { Name = "Norton", ID = "4" }); � Names.Add(new Employee { Name = "Sandy", ID = "5" }); � Names.Add(new Employee { Name = "Saravan", ID = "6" }); � Names.Add(new Employee { Name = "Sunil", ID = "7" }); � return Names; � } � }