fehlende Erweiterungsmehtode
-
Hallo, ich habe folgendes Problem:
Ich möchte ein Ereignis auslösen, wenn ich auf den Button klicke, aber es kommt immer die Fehlermeldung:
"ExpenseItHome" enthält keine Definition für "Button_Click", und es konnte keine Erweiterungsmethode "Button_Click" gefunden werden, die ein erstes Argument vom Typ "ExpenseItHome" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)Dabei habe ich den Namen im xaml Code angegeben und kann über Rechtsklick auch zum Ereignisshandler navigieren.
<Button ... Click="Button_Click"> View </Button>
private void Button_Click(object sender, RoutedEventArgs e) { ... }
-
Zu wenig Informationen, da können wir auch nur Rätselraten. Kannst du das Wurzelelement von XAML zeigen, in welchem Button definiert ist? Und in welcher Klasse wurde Button_Click definiert? Kannst du den Fehler in einem separaten simplen Projekt nachbauen?
Grüssli
-
Okay, hier das Projekt in vereinfachter Form:
mainWindow.xaml:
<NavigationWindow x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="ExpenseIt" Height="350" Width="500" Source="ExtenseItHome.xaml"> </NavigationWindow>
mainWindow.xaml.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace ExtenseIt { public partial class MainWindow : NavigationWindow { public MainWindow() { // InitializeComponent(); } } }
ExtenseItHome.xaml:
<Page x:Class="ExtenseItHome" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="436" Title="ExpenseIt - Home"> <Grid> <Button Click="Button_Click"> View </Button> </Grid> </Page>
ExtenseItHome.xaml.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace ExtenseIt { public partial class ExtenseItHome : Page { public ExtenseItHome() { //InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { } } }
-
<NavigationWindow x:Class="ExtenseIt.MainWindow" ... >
und
<Page x:Class="ExtenseIt.ExtenseItHome" ... >
Anders gesagt, du musst den vollständigen Namen der Klasse dort angeben (inklusive der Namensräume).
Grüssli
-
Danke, jetzt funktioniert's.