Существует два подхода: рекомендуемый и простой.
Рекомендуется: использовать шаблон MVVM. Создайте модель представления с помощью команд ButtonTextProperty
и RunTheThing
, введите команду для изменения свойства, назначьте эту модель для DataContext
и свяжите текст и команду вашей кнопки для просмотра свойств модели. Подход MVVM в основном такой же, как и в WPF, поэтому вы можете использовать документацию и учебные материалы оттуда (это относится к большей части Avalonia, BTW). Например, вот хороший (не реклама, 4-я ссылка от Google).
Простой (иначе как winforms-way): добавьте x:Name="MyButton"
к своей кнопке и используйте this.FindControl<Button>("MyButton")
после звонка AvaloniaXamlLoader.Load(this);
. Это даст вам ссылку Button
, которой вы можете манипулировать из кода. Вместо использования команд вы можете просто подписаться на обработчик кликов непосредственно из codebehind, добавить public void MyButton_OnClick(object sender, RoutedEventArgs args){}
в свой класс MainWindow
и добавить заменить Command и CommandParameter на Click="MyButton_OnClick"
. Таким образом, нажатие кнопки активирует ваш обработчик событий.
Обратите внимание, что второй подход плохо масштабируется с размером приложения и страдает от сложности кода при обработке списков.