1

Alright so my project is building as a ClassLibrary and what I want to happen is when I click the CoreAuthKeyTestButton that a function is called in the ExternalChat.SettingsWindow class. Keep in mind that the CoreAuthKeyTestButton_Click function was auto generated by Visual Studio, and I just threw in a line of code to output that it's working.

The program I'm making is a plugin of another application, it shouldn't matter but wanted to point that out.

Visual Studio says this code is fine. No errors when I build it. However when I load the plugin I get this error:

SettingsWindow.xaml(41,92) : error CS1061: 'SettingsWindow' does not contain a definition for 'CoreAuthKeyTestButton_Click' and no extension method 'CoreAuthKeyTestButton_Click' accepting a first argument of type 'SettingsWindow' could be found (are you missing a using directive or an assembly reference?)

This is the SettingsWindow.xaml

<Controls:MetroWindow 
x:Class="ExternalChat.SettingsWindow" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
Title="ExternalChat Settings" 
Height="300" 
Width="800" 
GlowBrush="{DynamicResource AccentColorBrush}"
WindowStartupLocation="CenterScreen">

    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
                <!-- Accent and AppTheme setting -->
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>

    <Grid Background="#FF2B2B2B">
        <Grid.Resources>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedSingleRowTabControl.xaml" />
        </Grid.Resources>
        <TabControl>
            <TabItem Header="Home" IsSelected="True">
                <Grid Height="218" VerticalAlignment="Top" Margin="21,0,13,0">
                    <TextBlock x:Name="HomeTextBlock" HorizontalAlignment="Left" TextWrapping="Wrap" Text="Boy, it sure is unfortunate I still haven't been properly named. What kind of name is ExternalChat? I should have some fancy name based off of FFXIV lore. If only someone would name me..." VerticalAlignment="Top"/>
                </Grid>
            </TabItem>
            <TabItem Header="Keys">
                <Grid HorizontalAlignment="Left" Height="218" VerticalAlignment="Top" Width="760" Margin="15,0,0,0">
                    <Label x:Name="CoreAuthKeyLabel" Content="Core Auth Key:" HorizontalAlignment="Left" VerticalAlignment="Top"/>
                    <TextBox x:Name="CoreAuthKeyInput" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="400" Margin="93,1,0,0" Text="{Binding Path=CoreAuthKey}"/>
                    <Button x:Name="CoreAuthKeyTestButton" Content="Save &amp; Test Key" HorizontalAlignment="Left" VerticalAlignment="Top" Width="100" Margin="492,1,0,0" BorderThickness="1" Height="26" Click="CoreAuthKeyTestButton_Click" />
                    <TextBlock x:Name="CoreAuthKeyTestResult" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Margin="597,5,0,0" Width="150" Text="{Binding Path=CoreAuthKeyTest}"/>
                </Grid>
            </TabItem>
        </TabControl>
    </Grid>
</Controls:MetroWindow>

This is the SettingsWindow.xaml.cs file:

using System;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Threading;
using MahApps.Metro;
using MahApps.Metro.Controls;
using Buddy.Overlay.Commands;
using System.Windows.Input;
using ff14bot.Helpers;

namespace ExternalChat
{
    public partial class SettingsWindow
    {
        public static string CoreAuthKey { get; set; }
        public static string CoreAuthKeyTest { get; set; }

        public SettingsWindow()
        {
            InitializeComponent();
        }

        protected void CoreAuthKeyTestButton_Click(object sender, RoutedEventArgs e)
        {
            Logging.Write("Save Core Auth Key Button Click Called");
        }
    }
}

Any help would be greatly appreciated, I can't figure out what I'm doing wrong, I assume it's an issue with something in my xaml file but I can't find out what it is.

AnExiledGod
  • 21
  • 1
  • 3

2 Answers2

0
 using MahApps.Metro.Controls;
 //
 public partial class MainWindow : MetroWindow

yours will be

 public partial class SettingsWindow : MetroWindow
0

I found the solution!

This topic explains it: https://stackoverflow.com/a/25110084/5377206

In my specific instance I changed the button to

<Button Name="CoreAuthKeyTestButton" Content="Save &amp; Test Key" HorizontalAlignment="Left" VerticalAlignment="Top" Width="100" Margin="492,1,0,0" BorderThickness="1" Height="26" />

And changed my SettingsWindow.xaml.cs to:

public SettingsWindow()
    {
        InitializeComponent();
        CoreAuthKeyTestButton.Click += (s, e) => { CoreAuthKeyTestButtonClickAction(); };
    }

    private void CoreAuthKeyTestButtonClickAction()
    {
        Logging.Write("Save Core Auth Key Button Click Called");
    }

Hope this helps someone if they're ever having issues.

Community
  • 1
  • 1
AnExiledGod
  • 21
  • 1
  • 3