Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Ce projet est une version expérimentale. Nous espérons que vous essayez des liaisons De blazor mobiles expérimentales et fournissez des commentaires à https://github.com/xamarin/MobileBlazorBindings.
L’exemple d’application Todo terminé est disponible ici. L’exemple utilise l’injection de dépendances, les services spécifiques à la plateforme, une base de données SQLite pour le stockage, les dialogues modals, les images personnalisées et de nombreuses autres fonctionnalités. Cet exemple montre comment afficher une liste dynamique d’éléments Todo
en croissance dynamique.
Pour créer une application Todo simple, commencez par le projet que vous avez déjà créé dans la section Générer votre première application . Toutes les modifications seront apportées au FirstMobileBlazorBindingsApp
projet.
Supprimez les fichiers
HelloWorld.razor
etCounter.razor
.Ajoutez un nouveau fichier de classe au projet nommé
TodoItem.cs
. Dans ce fichier, définissez une nouvelle classe pour représenter un élément Todo. Remplacez le code de cette classe par le code suivant :namespace FirstMobileBlazorBindingsApp { public class TodoItem { public string Text { get; set; } public bool IsDone { get; set; } } }
Ajoutez un nouveau composant Razor au projet en cliquant avec le bouton droit sur le projet, en sélectionnant, en sélectionnant , en
Razor component
sélectionnantNew Item
/Add
et en leTodoApp.razor
nommant . Remplacez le code du fichier par le code suivant :<ContentView> <StackLayout Margin="new Thickness(20)"> @* Entry area *@ <StackLayout Margin="new Thickness(20)" Orientation="StackOrientation.Horizontal"> <Entry @bind-Text="newItemText" HorizontalOptions="LayoutOptions.FillAndExpand" /> <Button Text="Add" OnClick="OnAddItem" /> </StackLayout> @* TodoItem area *@ @* TODO: This! *@ </StackLayout> </ContentView> @code { string newItemText; List<TodoItem> items = new List<TodoItem>(); void OnAddItem() { var newTodoItem = new TodoItem { Text = newItemText, }; items.Add(newTodoItem); // Clear out the text in the Entry textbox newItemText = null; } }
Modifiez le code dans
App.cs
lequel référencer le nouveauTodoApp
composant au lieu deHelloWorld
:host.AddComponent<TodoApp>(parent: MainPage);
Si vous exécutez l’application, vous verrez une zone de texte Entrée et un bouton Ajouter. Si vous tapez du texte et appuyez sur le bouton Ajouter, le texte disparaît simplement. Le
Entry
composant a une liaison bidirectionnelle au champ à l’aidenewItemText
de la syntaxe@bind-Text="newItemText"
Blazor. Lorsque laText
propriété desEntry
modifications est modifiée, lenewItemText
champ est mis à jour et lorsque le champ est mis à jour, lanewItemText
Entry
propriété duText
composant est mise à jour pour le rendu suivant. Toutefois, cette application n’est toujours pas utile : vous pouvez ajouter des éléments à une liste todo, mais vous ne pouvez pas voir la liste de todo elle-même!Pour afficher des éléments todo individuels, ajoutez un composant Razor au projet nommé
TodoItemDisplay.razor
avec le code suivant :<StackLayout Margin="new Thickness(20)" Orientation="StackOrientation.Horizontal"> <Switch @bind-IsToggled="Item.IsDone" /> <Label Text="@Item.Text" TextDecorations="(Item.IsDone ? TextDecorations.Strikethrough : TextDecorations.None)" HorizontalOptions="LayoutOptions.FillAndExpand" /> </StackLayout> @code { [Parameter] public TodoItem Item { get; set; } }
Ce composant définit l’interface utilisateur pour afficher un objet individuel
TodoItem
. Il accepte unTodoItem
objet via un paramètre de composant Blazor, indiqué par l’attribut[Parameter]
. Cela permet à un composant appelant de passer une valeur. Ce composant utilise une liaison@bind-IsToggled="Item.IsDone"
bidirectionnelle pour modifier la valeur de laItem.IsDone
propriété lorsque leSwitch
commutateur du composant est désactivé. Lorsque cette liaison a lieu, elle entraîne l’application duTextDecorations.Strikethrough
Label
style au composant lorsque l’élément est marqué comme terminé.Pour afficher la liste todo, accédez au fichier et remplacez le
TodoApp.razor
texte@* TODO: This! *@
par le code suivant :<ScrollView> <StackLayout> @foreach (var item in items) { <TodoItemDisplay Item="item" /> } </StackLayout> </ScrollView>
Ce code utilise une boucle C#
foreach
pour itérer sur la liste des éléments todo et afficher unTodoItemDisplay
composant pour chacun d’eux, en passant l’élément actif à la propriété duItem
composant :Item="item"
Vous pouvez maintenant exécuter l’application et ajouter des éléments todo et les voir affichés dans la liste ci-dessous. Si vous basculez le commutateur sur un élément donné, le texte de cet élément aura la décoration de frappe appliquée :
Félicitations, vous avez créé une application todo à l’aide de liaisons Blazor Mobiles expérimentales qui montrent comment créer des composants personnalisés avec des paramètres, comment utiliser des liaisons bidirectionnelle et comment effectuer une boucle sur des éléments pour afficher une interface utilisateur dynamique.