C# Avalonia按钮单击事件不起作用

C# Avalonia按钮单击事件不起作用,c#,xaml,avalonia,C#,Xaml,Avalonia,我有一个简单的Avalonia表格: <Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.or

我有一个简单的Avalonia表格:

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="AvaloniaExperiment.MainWindow"
        Title="AvaloniaExperiment">
  <StackPanel>
    <TextBlock>Welcome to Avalonia!</TextBlock>
    <Button Name="btn" Click="btn_OnClick">Fred!</Button>
  </StackPanel>
</Window>
但是,我会遇到以下编译错误:

名称btn在当前上下文中不存在(在代码隐藏中)

无法为Avalonia类型的属性单击找到合适的setter或adder。控件:Avalonia.Controls.Button用于参数System.Private.CoreLib:System.String,可用的setter参数列表包括: System.EventHandler`1[[Avalonia.Interactivity.RoutedEventTargets,Avalonia.Interactivity,版本=0.9.0.0,区域性=中立,PublicKeyToken=null]](在XAML中)

无法为Avalonia类型的属性命令找到合适的setter或adder。参数系统的控件:Avalonia.Controls.Button。运行时:System.String,可用的setter参数列表为: 阿瓦隆尼亚 Avalonia.Data.IBinding System.Windows.Input.icomand(也在XAML中)


在连接此事件处理程序时,我可能做错了什么?

按钮没有
Text
属性。它确实有
内容

btn.Content = "Ginger";
你试过

public void btn_OnClick(object sender, RoutedEventArgs e)
{
    btn.Text = "Ginger";
}

您应该在父控件构造函数中添加ControlLink 像这样:

public class AnyParentControl
{
    Button btn; // for the class
    public AnyParentControl() // constructor
    {
        InitializeComponent(); // necessary method for Avalonia

        btn = this.Find<Button>("The Control Name on XAML File");
        btn.Click += Cbtn_Click; // event link
    }
}
公共类AnyParentControl
{
按钮btn;//用于类
public AnyParentControl()//构造函数
{
InitializeComponent();//Avalonia的必要方法
btn=this.Find(“XAML文件上的控件名”);
btn.Click+=Cbtn\u Click;//事件链接
}
}

来自秘鲁的问候:D

哦,是的,我注意到了,不过谢谢你指出这一点!现在尝试过了,但是我仍然遇到上面列出的第二个错误。实际上,我必须用调用
FindControl
来替换
btn
,以按名称查找它,但我仍然得到了那个错误。似乎以前有人在Noepe中遇到过这个问题,即使我将它更改为
Click=“{Binding btn\u OnClick}”
。。。
public class AnyParentControl
{
    Button btn; // for the class
    public AnyParentControl() // constructor
    {
        InitializeComponent(); // necessary method for Avalonia

        btn = this.Find<Button>("The Control Name on XAML File");
        btn.Click += Cbtn_Click; // event link
    }
}