Ответы пользователя по тегу C#
  • Анимированная выезжающая вкладка xamarin?

    Lapita12
    @Lapita12
    Тесты, тесты?
    Тебе нужно использовать контрол Expander из Xamarin Community Toolkit. Expander - это контейнер, в который можно положить любой контент. У него есть заголовок и содержимое, и когда ты нажимаешь на заголовок, содержимое показывается или прячется с анимацией.

    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                 xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
                 x:Class="YourNamespace.YourPage">
        <StackLayout>
            <xct:Expander>
                <xct:Expander.Header>
                    <Label Text="Информация"
                           FontSize="Large"
                           HorizontalOptions="Center" />
                </xct:Expander.Header>
                <xct:Expander.Content>
                    <Label Text="Здесь будет твой текст"
                           FontSize="Medium"
                           HorizontalOptions="Center"
                           VerticalOptions="Center" />
                </xct:Expander.Content>
            </xct:Expander>
        </StackLayout>
    </ContentPage>


    Тут мы используем StackLayout, чтобы разместить Expander. В заголовке Expander есть метка с текстом "Информация", а в содержимом - метка с текстом "Здесь будет твой текст". Когда ты нажимаешь на заголовок, содержимое анимированно показывается или прячется.

    Если хочешь добавить иконку к заголовку, то код ниже

    <xct:Expander.Header>
        <StackLayout Orientation="Horizontal">
            <Image Source="your_icon.png"
                   WidthRequest="24"
                   HeightRequest="24" />
            <Label Text="Информация"
                   FontSize="Large"
                   HorizontalOptions="Center" />
        </StackLayout>
    </xct:Expander.Header>


    Замени your_icon.png на имя файла с твоей иконкой. Это добавит иконку слева от текста заголовка.

    Не забудь добавить ссылку на Xamarin Community Toolkit в своем проекте и импортировать пространство имен http://xamarin.com/schemas/2020/toolkit в своем XAML-файле.
    Ответ написан
    Комментировать
  • Как взаимодействовать из Razor-pages с файлом cs этих страниц?

    Lapita12
    @Lapita12
    Тесты, тесты?
    CreateModel.cs:
    public class CreateModel : PageModel
    {
        // Добавьте ваш контекст базы данных здесь
        // Например: private readonly AppDbContext _context;
    
        public CreateModel(/*AppDbContext context*/)
        {
            // _context = context;
        }
    
        public async Task<IActionResult> OnPostAsync(string name, string comment)
        {
            // Сохраните данные в базе данных здесь
            // Например: _context.Comments.Add(new Comment { Name = name, CommentText = comment });
            // await _context.SaveChangesAsync();
    
            return RedirectToPage();
        }
    }


    Create.cshtml:
    @page
    @model WebApplication1.Pages.CreateModel
    @{
        ViewData["Title"] = "Create";
    }
    <h2>Create</h2>
    
    <form method="post">
        <label for="name">Name:</label>
        <input id="name" name="name" type="text" required />
        <br />
    
        <label for="comment">Comment:</label>
        <input id="comment" name="comment" type="text" required />
        <br />
    
        <input type="submit" value="Submit" />
    </form>

    В этом примере, я удалил обработку POST-запроса из Razor-страницы и переместил ее в метод OnPostAsync в CreateModel. Метод OnPostAsync будет автоматически вызываться и сохранять данные в базу данных.
    Ответ написан
    Комментировать
  • Как вывести всю таблицу MySql C#?

    Lapita12
    @Lapita12
    Тесты, тесты?
    using System;
    using System.Data;
    using MySql.Data.MySqlClient;
    
    class Program
    {
        static void Main()
        {
            string connectionString = "Server=localhost;Database=myDatabase;Uid=myUsername;Pwd=myPassword;";
            
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                connection.Open();
                
                MySqlCommand cmd = new MySqlCommand("SELECT * FROM myTable", connection);
                MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
                DataTable table = new DataTable();
                adapter.Fill(table);
                
                connection.Close();
                
                foreach (DataRow row in table.Rows)
                {
                    Console.WriteLine($"{row["Column1"]}, {row["Column2"]}, {row["Column3"]}");
                }
            }
        }
    }

    Не забудьте заменить myDatabase, myUsername, myPassword на реальные значения для вашей базы данных, а также myTable и Column1, Column2, Column3 на реальные имена таблицы и столбцов.
    Ответ написан
    Комментировать