Blazor — это веб-платформа, разработанная Microsoft, которая позволяет разработчикам создавать интерактивные веб-приложения с использованием C# и.NET. Приложение списка дел — это распространенный пример, используемый для демонстрации возможностей Blazor. Вот несколько методов, которые вы можете использовать для реализации списка задач Blazor, а также примеры кода:
-
Использование списка
: // TodoItem.cs public class TodoItem { public string Title { get; set; } public bool IsCompleted { get; set; } } // TodoList.razor @page "/todolist" <h3>Todo List</h3> <ul> @foreach (var item in todoItems) { <li> <input type="checkbox" @bind="item.IsCompleted" /> <span>@item.Title</span> </li> } </ul> @code { List<TodoItem> todoItems = new List<TodoItem> { new TodoItem { Title = "Task 1", IsCompleted = false }, new TodoItem { Title = "Task 2", IsCompleted = true }, new TodoItem { Title = "Task 3", IsCompleted = false } }; } -
Использование компонента:
// TodoItem.cs public class TodoItem { public string Title { get; set; } public bool IsCompleted { get; set; } } // TodoList.razor @page "/todolist" <h3>Todo List</h3> <ul> @foreach (var item in todoItems) { <TodoItemComponent Item="item" /> } </ul> @code { List<TodoItem> todoItems = new List<TodoItem> { new TodoItem { Title = "Task 1", IsCompleted = false }, new TodoItem { Title = "Task 2", IsCompleted = true }, new TodoItem { Title = "Task 3", IsCompleted = false } }; } // TodoItemComponent.razor <div> <input type="checkbox" @bind="Item.IsCompleted" /> <span>@Item.Title</span> </div> @code { [Parameter] public TodoItem Item { get; set; } } -
Использование службы передачи данных:
// TodoItem.cs public class TodoItem { public string Title { get; set; } public bool IsCompleted { get; set; } } // TodoList.razor @page "/todolist" <h3>Todo List</h3> <ul> @foreach (var item in todoItems) { <li> <input type="checkbox" @bind="item.IsCompleted" /> <span>@item.Title</span> </li> } </ul> @code { List<TodoItem> todoItems; protected override async Task OnInitializedAsync() { todoItems = await TodoItemService.GetTodoItemsAsync(); } } // TodoItemService.cs public static class TodoItemService { public static async Task<List<TodoItem>> GetTodoItemsAsync() { // Fetch todo items from an API or database // Example: // var todoItems = await HttpClient.GetFromJsonAsync<List<TodoItem>>("api/todoitems"); // return todoItems; // For demonstration purposes, return hardcoded todo items: return new List<TodoItem> { new TodoItem { Title = "Task 1", IsCompleted = false }, new TodoItem { Title = "Task 2", IsCompleted = true }, new TodoItem { Title = "Task 3", IsCompleted = false } }; } }