Добавление интерактивности
Одна из фундаментальных задач пользовательского интерфейса - взаимодействие с пользователем. В Avalonia вы можете добавить интерактивность к вашим приложениям, используя события и команды. Это руководство познакомит вас с событиями и командами на простых примерах.
Обработка событий
События в Avalonia предоставляют способ реагировать на взаимодействия пользователя и специфические действия компонентов интерфейса. Вы можете обрабатывать события, выполнив следующие шаги:
- Реализуйте обработчик события: Напишите обработчик события в code-behind, который будет выполняться при срабатывании события. Обработчик события должен содержать логику, которую вы хотите выполнить в ответ на событие.
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void HandleButtonClick(object sender, RoutedEventArgs e)
{
// Логика обработки события размещается здесь
}
}
- Подпишитесь на событие: Определите событие, которое вы хотите обрабатывать в вашем элементе управления. Большинство компонентов интерфейса в Avalonia предоставляют различные события, такие как
ClickилиSelectionChanged. Подпишитесь на событие в XAML, найдя элемент управления и добавив атрибут с именем события и значением, указывающим имя метода обработчика события.
<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. Команда обычно запускается при основном методе взаимодействия элемента управления, например, при нажатии кнопки.
Самый простой способ использования команд - это привязка к методу в контексте данных объекта.
-
Добавьте метод в модель представления: Определите метод в модели представления, который будет обрабатывать команду.
public class MainWindowViewModel
{
public bool HandleButtonClick()
{
// Логика обработки события здесь
}
}- Привяжите метод: Свяжите метод с элементом управления, который его вызывает.
<Button Content="Нажми меня" Command="{Binding HandleButtonClick}" />