Перейти к основному содержимому

Добавление интерактивности

Одна из фундаментальных задач пользовательского интерфейса - взаимодействие с пользователем. В Avalonia вы можете добавить интерактивность к вашим приложениям, используя события и команды. Это руководство познакомит вас с событиями и командами на простых примерах.

Обработка событий

События в Avalonia предоставляют способ реагировать на взаимодействия пользователя и специфические действия компонентов интерфейса. Вы можете обрабатывать события, выполнив следующие шаги:

  1. Реализуйте обработчик события: Напишите обработчик события в code-behind, который будет выполняться при срабатывании события. Обработчик события должен содержать логику, которую вы хотите выполнить в ответ на событие.
MainWindow.axaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}

private void HandleButtonClick(object sender, RoutedEventArgs e)
{
// Логика обработки события размещается здесь
}
}
  1. Подпишитесь на событие: Определите событие, которое вы хотите обрабатывать в вашем элементе управления. Большинство компонентов интерфейса в Avalonia предоставляют различные события, такие как Click или SelectionChanged. Подпишитесь на событие в XAML, найдя элемент управления и добавив атрибут с именем события и значением, указывающим имя метода обработчика события.
MainWindow.axaml
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="AvaloniaApplication1.Views.MainWindow">
<Button Name="myButton" Content="Нажми меня" Click="HandleButtonClick" />
</Window>

Приведенный выше пример добавляет обработчик с именем HandleButtonClick к событию Click кнопки.

Использование команд

Команды в Avalonia предоставляют более высокоуровневый подход к обработке взаимодействий пользователя, отделяя действие пользователя от логики реализации. В то время как события определяются в code-behind элемента управления, команды обычно привязываются к свойству или методу в контексте данных.

к сведению

Команды доступны во всех элементах управления, которые предоставляют свойство Command. Команда обычно запускается при основном методе взаимодействия элемента управления, например, при нажатии кнопки.

Самый простой способ использования команд - это привязка к методу в контексте данных объекта.

  1. Добавьте метод в модель представления: Определите метод в модели представления, который будет обрабатывать команду.

    public class MainWindowViewModel
    {
    public bool HandleButtonClick()
    {
    // Логика обработки события здесь
    }
    }
    1. Привяжите метод: Свяжите метод с элементом управления, который его вызывает.
    <Button Content="Нажми меня" Command="{Binding HandleButtonClick}" />