Загрузка данных


using Avalonia.Controls;
using Avalonia.Interactivity;
using System;

namespace AvaloniaCalc
{
    public partial class MainWindow : Window
    {
        double firstNumber = 0;
        string operation = "";
        bool isNewInput = true;

        public MainWindow()
        {
            InitializeComponent();
        }

        // Ввод цифр
        private void OnNumberClick(object sender, RoutedEventArgs e)
        {
            Button btn = (Button)sender;
            string digit = btn.Content.ToString();

            if (Display.Text == "0" || isNewInput)
            {
                Display.Text = digit;
                isNewInput = false;
            }
            else
            {
                Display.Text = Display.Text + digit;
            }
        }

        // Выбор действия (+, -, *, /)
        private void OnOpClick(object sender, RoutedEventArgs e)
        {
            Button btn = (Button)sender;
            
            firstNumber = Convert.ToDouble(Display.Text);
            operation = btn.Content.ToString();
            isNewInput = true;
        }

        // Вычисление результата (=) с использованием switch...case
        private void OnEqualsClick(object sender, RoutedEventArgs e)
        {
            double secondNumber = Convert.ToDouble(Display.Text);
            double result = 0;

            switch (operation)
            {
                case "+":
                    result = firstNumber + secondNumber;
                    break;

                case "-":
                    result = firstNumber - secondNumber;
                    break;

                case "*":
                    result = firstNumber * secondNumber;
                    break;

                case "/":
                    if (secondNumber != 0)
                    {
                        result = firstNumber / secondNumber;
                    }
                    else
                    {
                        Display.Text = "Ошибка";
                        isNewInput = true;
                        return;
                    }
                    break;

                default:
                    result = secondNumber;
                    break;
            }

            Display.Text = result.ToString();
            isNewInput = true;
        }

        // Очистка (C)
        private void OnClearClick(object sender, RoutedEventArgs e)
        {
            Display.Text = "0";
            firstNumber = 0;
            operation = "";
            isNewInput = true;
        }
    }
}






<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Class="AvaloniaCalc.MainWindow"
        Title="Простой калькулятор" Height="400" Width="300"
        CanResize="False" WindowStartupLocation="CenterScreen">

    <Grid RowDefinitions="Auto, *">
        <!-- Поле вывода результата -->
        <TextBox Name="Display" Grid.Row="0" Margin="10" 
                 Height="50" FontSize="24" TextAlignment="Right" 
                 IsReadOnly="True" Text="0"/>

        <!-- Сетка кнопок -->
        <Grid Grid.Row="1" Margin="10" RowDefinitions="*,*,*,*" ColumnDefinitions="*,*,*,*">
            <Grid.Styles>
                <Style Selector="Button">
                    <Setter Property="Margin" Value="4"/>
                    <Setter Property="HorizontalAlignment" Value="Stretch"/>
                    <Setter Property="VerticalAlignment" Value="Stretch"/>
                    <Setter Property="HorizontalContentAlignment" Value="Center"/>
                    <Setter Property="VerticalContentAlignment" Value="Center"/>
                    <Setter Property="FontSize" Value="20"/>
                </Style>
            </Grid.Styles>

            <!-- Ряд 1 -->
            <Button Content="7" Grid.Row="0" Grid.Column="0" Click="OnNumberClick"/>
            <Button Content="8" Grid.Row="0" Grid.Column="1" Click="OnNumberClick"/>
            <Button Content="9" Grid.Row="0" Grid.Column="2" Click="OnNumberClick"/>
            <Button Content="/" Grid.Row="0" Grid.Column="3" Click="OnOpClick"/>

            <!-- Ряд 2 -->
            <Button Content="4" Grid.Row="1" Grid.Column="0" Click="OnNumberClick"/>
            <Button Content="5" Grid.Row="1" Grid.Column="1" Click="OnNumberClick"/>
            <Button Content="6" Grid.Row="1" Grid.Column="2" Click="OnNumberClick"/>
            <Button Content="*" Grid.Row="1" Grid.Column="3" Click="OnOpClick"/>

            <!-- Ряд 3 -->
            <Button Content="1" Grid.Row="2" Grid.Column="0" Click="OnNumberClick"/>
            <Button Content="2" Grid.Row="2" Grid.Column="1" Click="OnNumberClick"/>
            <Button Content="3" Grid.Row="2" Grid.Column="2" Click="OnNumberClick"/>
            <Button Content="-" Grid.Row="2" Grid.Column="3" Click="OnOpClick"/>

            <!-- Ряд 4 -->
            <Button Content="C" Grid.Row="3" Grid.Column="0" Click="OnClearClick"/>
            <Button Content="0" Grid.Row="3" Grid.Column="1" Click="OnNumberClick"/>
            <Button Content="=" Grid.Row="3" Grid.Column="2" Click="OnEqualsClick"/>
            <Button Content="+" Grid.Row="3" Grid.Column="3" Click="OnOpClick"/>
        </Grid>
    </Grid>
</Window>