Premiers pas avec List Picker dans Telerik UI pour Xamarin
Besoin d'un contrôle Sélecteur qui vous permet de sélectionner un seul élément dans une liste d'éléments? – Découvrez le contrôle Telerik UI pour Xamarin List Picker fraîchement publié.
Pour les développeurs Xamarin, le nouveau List Picker dans Telerik UI pour Xamarin peut être utilisé dans divers scénarios. Par exemple, vous pouvez choisir une couleur dans une liste de couleurs, créer une liste de tailles et en choisir une, etc.
Nous avons ajouté des fonctionnalités fantaisistes au contrôle du sélecteur de liste, ainsi que la possibilité de personnaliser entièrement son apparence et apparence grâce à l'API de style flexible.
Boucle – une fonctionnalité très utile si vous souhaitez boucler une liste d'éléments et les faire défiler à l'infini
Boucle
Le sélecteur de liste pour Xamarin fournit une fonctionnalité de bouclage qui vous permet de boucler la liste des éléments après rea ching le dernier élément. Il est très facile d'activer cette fonction, il suffit de définir la propriété List Picker IsLooping sur true et votre liste d'éléments pourra défiler à l'infini.
< telerikInput: RadListPicker Placeholder = "Sélectionnez la couleur:"
ItemsSource = "{{ Couleurs contraignantes} "
IsLooping = " Vrai "> [19659002] < telerikInput: RadListPicker.ItemTemplate >
] < DataTemplate >
</ DataTemplate >
</ telerikInput: RadListPicker.ItemTemplate >
</ telerikInput: RadListPicker >

< DataTemplate x: Key = "itemTemplate" >
< Étiquette Texte = [19659025] "{Population contraignante}"
BackgroundColor = "LightYellow" [19659002] HorizontalTextAlignment = "Centre"
[1945903030] ] VerticalTextAlignment = "Center" />
</ DataTemplate >
SelectedItemTemplate
< [1 9659022] DataTemplate x: Key = "selectedItemTemplate" >
< Étiquette [19659023] Texte = "{Binding Name}"
BackgroundColor = "LightBlue "
HorizontalTextAlignment = " Centre "
] VerticalTextAlignment = "Centre" />
</ DataTemplate >
PlaceholderTemplate
< ControlTemplate x: Key = "footerTemplate" >
< StackLayout Orientation = [19659025] "Horizontal"
Espacement = "0"
Options horizontales = "FillAndExpand"
BackgroundColor = "# B73562" >
< Bouton Texte Texte ] = "Annuler"
TextColor = "Blanc" [19659002] BackgroundColor = "Transparent"
Commande = "{TemplateBinding C ancelCommand} " />
< Bouton Texte = " OK "
TextColor = " Blanc ""
] BackgroundColor = "Transparent"
Commande = "{TemplateBinding AcceptCommand}" />
</ StackLayout > ]
</ ControlTemplate >
Pour plus de détails sur les modèles de sélecteur de liste et un exemple de démonstration, consultez l'article Modèles de notre
DisplaySting
Le La propriété DisplayStringFormat définit le texte qui sera affiché lorsqu'un élément est sélectionné, et vous pouvez également l'appliquer lorsqu'un élément est sélectionné.

De plus, nous avons ajouté une propriété DisplayMemberPath qui vous permet de définir le chemin de la propriété qui doit être affichée en tant que DisplayString.
API de style flexible
Nous avons exposé une API de style flexible qui vous permet de styliser facilement le contrôle List Picker. Par exemple:
La propriété ItemStylevous permet de styliser les éléments de la liste et leSelectedItemStylel'élément sélectionnéSelectionHighlightStylePlaceholderLabelStylepermet pour styliser l'espace réservé du sélecteur de liste, et si l'espace réservé par défaut ne correspond pas à vos besoins, vous pouvez le personnaliser à l'aide de la propriétéPlaceholderTemplate.DisplayLabelStylevous donne la possibilité de styliser le texte affiché lorsqu'un élément de la liste est sélectionné.
De plus, nous avons exposé une API de style pour la fenêtre contextuelle. Vous pouvez facilement styliser son en-tête, son pied de page, annuler et accepter les boutons. Il vous suffit de définir la propriété ListPicker.SelectorSettings . La propriété est de type PickerPopupSelectorSettings et fournit les options de style suivantes pour la fenêtre contextuelle et sa vue d'en-tête:
PopupHeaderViewHeaderStyleHeaderLabelStyle[19659167] FooterStyle- Pour ajouter les boutons à l'intérieur du pied de page, utilisez
AcceptButtonStyleetCancelButtonStyle - Définissez une couleur d'arrière-plan en dehors de la fenêtre contextuelle à l'aide de
PopupOutsideBackgroundColor - Modifiez le texte l'en-tête Popup à l'aide des propriétés
HeaderLabelText - Modifiez le texte à l'intérieur des boutons d'acceptation et d'annulation, ou par exemple, vous pouvez définir une icône, via les propriétés
AcceptButtonTextetCancelButtonText[19659170] Nous avons un article styling dans notre documentation qui décrit les capacités de style du contrôle.Demo
Créons une démo qui vous permet de choisir un genre de musique fr
Voici un exemple de modèle de genre:
publicclasseGenre{publicGenre (chaînemusicGenre)[1945902828] {ceci.MusicGenre = musicGenre;}publicstringMusicGenre {get];set; }}et le modèle Music:
publicclasseMusique{publicMusique (chaîneartiste,chaînechanson, Color iconColor){ceci] .Artist = artist;this.Song = song;]
ceci.IconColor = iconColor;}publicchaîneArtiste {prenez;set; }publicchaîneChanson {get;set; }publicColor IconColor {get;set; }}voici le ViewModel:
publicclasseViewModel: NotifyPropertyChangedBase] {publicViewModel ()[1945903535]{ceci.Genres =nouveauObservableItemCollection() [) {nouveau [19659137] Genre ("Rock alternatif"),nouveauGenre (" Nouvelle vague "),nouveauGenre ("Jazz"),nouveauGenre ("Pop Rock"),nouveauGenre (] "Punk Rock"),nouveauGenre ("Progressive House"),};this.RecentlyPlayed =newObservableItemCollection( ) {nouvelleMusique ("Nirvana""Smells Like Teen Spirit"Color.FromH ex ("# F3C163")),nouveauMusique ("Queen" "" Je veux me libérer "Color.FromHex (" # 007AFF ")),]nouveauMusique ("Depeche Mode""Personal Jesus"Color.FromHex ("# CE3A6D" [19659024])),nouveauMusique ("The Police"" Personal Jesus "Color.FromHex (" # CE3A6D ")),nouveau [[19659137] Musique ("Green Day""Basket Case"Color.FromHex ("# F3C163")),[19659002]nouvelleMusique ("David Guetta ft. Ne-Yo, Akon""Play Hard"Color.FromHex ([1965902525)] "# CE3A6D")),nouveauMusique ("Louis Armstrong"]"Quel monde merveilleux"Color.FromHex ("# 007AFF")),nouvelleMusique ("Radiohead""Creep"Color.FromHex ("# F3C163")),nouveauMusique ("The Clash""Dois-je rester ou devrais-je Aller "Color.FromHex (" # 007AFF ")),nouveau [19659137]La musique ("Blondie""Call Me"Color.FromHex ("# CE3A6D")),nouveauMusique ("Calvin Harris""Call Me"Color.FromHex ("" # CE3A6D ")),nouveauMusique (" Ray Charles "[19659025] "J'ai une femme"Color.FromHex ("# 007AFF")),nouvelleMusique ("Red Hot Chili Peppers""Airplane"Color.FromHex ("# F3C163")),nouveauMusique ("The Beatles""Help"Color.FromHex ("# 007AFF ")),};}publicObservableItemCollectionGenres { get;set; }publicObservableItemCollectionRecentPlayed { get;set; }}Voici comment le sélecteur de liste est défini dans XAML:
<ContentPage.BindingContext>[19659002]<local: ViewModel/></ContentPage. BindingContext><ContentPage.Content><Grille><Grid.RowDefinitions>[19659002]<RowDefinitionHauteur="60"/><RowDefinitionHauteur="Auto"/><RowDefinitionHauteur=] "" "/><RowDefinitionHauteur=" Auto "/></Grid.RowDefinitions>>[19659002]<StackLayoutGrid.Row="0"BackgroundColor=" #EAEAEA "HeightRequest=" 60 "><ImageSource="music.png"VerticalOptions="End"HorizontalOptions [19659024] ="Fin"/></StackLayout><StackLayoutMargin="16, 40, 16, 0"Grid.Row="1"><TexteTexte="Listen to Top Music Genres"TextColor="# 007AFF"FontSize="22"Margin="0,0,0,24"/><ÉtiquetteTexte="Genre musical:"TextColor="Noir"FontSize="15"FontAttributes= [19659025] "Bold" [19659023] Marge="0, 0, 0, 21"/><[19659022] telerikInput: RadListPickerx: Name="genrePicker"Espace réservé="Sélectionnez le genre de musique à écouter"ItemsSource="{Binding Genres}"IsLooping="Vrai"[1945902222]SelectionHighlightStyle="{StaticResource SelectionHighlightStyle}"DisplayStringFormat="Votre choix est: {0}"DisplayMemberPath="MusicGenre"DisplayLabelStyle="{StaticResource displayLabelStyle}"PlaceholderLabelStyle="{StaticResource placeholderLabelStyle}"><telerikInput: RadListPicker.ItemTemplate><DataTemplate><LabelText="{Binding MusicGenre}"HorizontalTextAlignment="Centre"]VerticalTextAlignment="Centre"/></DataTemplate></telerikInput: RadListPicker.ItemTemplate>[19659002]<telerikInput: RadListPicker.SelectorSettings><telerikInput: PickerPopupSelectorSettingsHeaderLabelText="Genre"HeaderStyle="{StaticResource HeaderStyle}"HeaderLabelStyle [19659024] ="{StaticResource HeaderLabelStyle}"/></telerikInput: RadListPicker.SelectorSettings></telerikInput: RadListPicker>><telerikPrimitives: RadBorderBorderThickness="0, 0, 0, 1"BorderColor="# 919191"/><LabelTexte="Récemment Plaied: "TextColor=" # 919191 "FontAttributes=" Bold "FontSize=" 15 "Margin="0, 25, 0, 0"/></StackLayout><telerikDataControls: RadListViewGrid.Row="2"ItemsSource="{Binding RecentPlayed}" "[19659024]><telerikDataControls: RadListView.ItemTemplate>]
<DataTemplate><listView: ListViewTemplateCell><listView: ListViewTemplateCell.View><Grille><StackLayoutOrientation="Horizontal"Marge="10, 15, 10 , 15 "Options verticales=" Centre "Options horizontales=" Début "><telerikPrimitives: RadBorderBorderColor="{Binding IconColor}"BorderThickness="3"BackgroundColor="{Binding IconColor}"WidthRequest="5"HeightRequest=" 5 "/><ÉtiquetteTexte=" {Reliure Artiste} "FontSize=" 12 "FontAttributes=" Bold "TextColor=" Black "/><ÉtiquetteTexte="-"/>]<LabelText="{Binding Song}"FontSize] ="12"TextColor="# 919191"/></StackLayout>[1945902222]</Grille></listView: ListViewTemplateCell. Afficher></listView: ListViewTemplateCell></DataTemplate>< /[19659022[telerikDataControls:RadListViewItemTemplateréf1919909022>1945902219459006196590021945903219459033adListView><StackLayoutGrid.Row="3"BackgroundColor="# EAEAEA"HeightRequest [19659024] ="65"><telerikPrimitives: RadBorderOptions verticales="CenterAndExpand"WidthRequest="200"[19659002]HeightRequest="40"] HorizontalOptions="CenterAndExpand"><telerikInput: RadButtonText="Play Music"CornerRadius="20"Rembourrage="10,5,10 , 5 "BorderColor=" # 007AFF "]
BorderWidth="1"TextColor [19659024] ="# 007AFF"FontSize="15"Clicked="OnPlayButtonClicked"BackgroundColor="Transparent"/></telerikPrimitives:RadBorder></StackLayout></Grid></ContentPage.Content>You also need to add the needed styles to the page Resources:
<ContentPage.Resources><ResourceDictionary><StyleTargetType="Label"x:Key="placeholderLabelStyle"><SetterProperty="TextColor"Value="#919191"/></Style><StyleTargetType="Label"x:Key="displayLabelStyle"><SetterProperty="TextColor"Value="Black"/><SetterProperty="FontAttributes"Value="Bold"/></Style><StyleTargetType="Label"x:Key="HeaderLabelStyle"><SetterProperty="TextColor"Value="Black"/><SetterProperty="FontAttri butes"Value="Bold"/><SetterProperty="FontSize"Value="21"/><SetterProperty="HorizontalOptions"Value="Center"/><SetterProperty="VerticalOptions"Value="Center"/></Style><StyleTargetType="telerikInput:PickerPopup HeaderView"x:Key="HeaderStyle"><SetterProperty="BackgroundColor"Value="#F8F8F8"/><SetterProperty="HeightRequest"Value="64"/></Style><StyleTargetType="telerikPrimitives:RadBorder"x:Key="SelectionHighlightStyle"><SetterProperty[19659024]="BorderColor"Value="LightGray"/><SetterProperty="CornerRadius"Value="2"/></Style></ResourceDictionary></ContentPage.Resources>This is the final result:

Tell Us What You Think
We would love to hear what you think about the List Picker control and how we can continue to improve it. If you have any ideas for features to add, do not hesitate to share this information with us on our Telerik UI for Xamarin Feedback portal.
Don’t forget to check out the various demos of the control in our SDK Sample Browser and the Telerik UI for Xamarin Demos application.
If you have not yet tried the Telerik UI for Xamarin suite, take it out for a spin with a 30-day free trialoffering all the functionalities and controls at your disposal at zero cost.
Happy coding with our controls and stay with us! More blog posts with everything you need to know about our Date and Time Picker and Custom (Templated) Picker controls are on the way. ?
Source link
