如何修复 wpf 中发现第一个参数不存在时的 CS1061 错误?”?

问题描述 投票:0回答:1

我在 WPF 中遇到一个问题,当我尝试为按钮提供一些事件(此处为单击)时,它会弹出错误消息 --

“MainWindow”不包含“ToggleB1_Click”的定义,并且找不到接受“MainWindow”类型的第一个参数的可访问扩展方法“ToggleB1_Click”(您是否缺少 using 指令或程序集引用?)

错误发生在 mainwindow.xaqml 文件第 13 行,其中使用了按钮标签。我尝试附加事件处理程序两次以查看它是否有效,但它只是给出了相同的错误。

MainWindow.xaml 代码是 --

`<Grid>
        <TextBlock Name="Hello" FontSize="70" FontWeight="DemiBold"
                   VerticalAlignment="Center" HorizontalAlignment="Center" />

        <Button Click="ToggleB1_Click" Name="ToggleB1" Content="Click" HorizontalAlignment="Center" VerticalAlignment="Bottom"
                Width="200"
 Height="50" FontSize="30" Background="Black"
                Foreground="White" />
    </Grid>
</Window>
`

MainWindow.xaml.cs 代码是 --

`namespace C__experiments_WPF_
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        bool running = false;
        public MainWindow()
        {
            InitializeComponent();
            ToggleB1.Click += ToggleB1_Click;
        }

        private void ToggleB1_Click(object sender, RoutedEventArgs e)
        {
            running = !running;
            if (running)
            {
                 ToggleB1.Content = "Stop";
                 Hello.Text = "Hello";
            }
            else
            {
                ToggleB1.Content = "Start";
                Hello.Text = "Bye";
            }
        }
    }
}`

我正在使用 .NET 8 和 wpf

我尝试过更改名称、更改 .net 版本以及互联网上的其他所有内容(我并不夸张)。此外,清理并重建项目或删除 obj 和 bin 文件夹并重建它也不起作用。

c# wpf compiler-errors
1个回答
0
投票

您遇到的问题可能是由于事件处理程序声明与 XAML 中事件的引用方式之间不匹配或冲突造成的。以下是可能的原因和解决方案的细分:

1。检查命名空间 确保 MainWindow.xaml 和 MainWindow.xaml.cs 文件中的命名空间与项目的命名空间匹配。在你的例子中: 命名空间 C__experiments_WPF_

如果存在拼写错误或差异,可能找不到事件处理程序。

2。事件处理程序定义 该错误表明编译期间未找到 ToggleB1_Click 事件处理程序。验证:

ToggleB1_Click 方法在 XAML 和代码隐藏中的拼写完全相同。 MainWindow.xaml.cs 中的方法签名与所需的签名匹配:

private void ToggleB1_Click(对象发送者,RotedEventArgs e)

3. XAML 定义 XAML 中的 Click 属性通过名称引用该方法。确保其书写正确:

4。避免冗余附件 由于您在 XAML 中指定 Click="ToggleB1_Click",因此构造函数中的行:

ToggleB1.Click += ToggleB1_Click;

5。重建和清理项目

© www.soinside.com 2019 - 2024. All rights reserved.