В одной из моих предыдущих публикаций в блоге я рассказал о 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; �
} �
}