Вопрос переноса переменной на кнопку функции
Здравствуйте кодеры, у меня возникла проблема, когда я пытаюсь передать случайно сгенерированное значение переменной в функцию on_click, значение кажется пустым и не передается, как должно быть, я действительно не могу понять, почему возникает эта проблема, так что если кто-то может помочь, это будет очень ценно, спасибо.
(ps извините за публикацию почти всего кода, но я действительно не мог понять, где я ошибся)
Что я уже пробовал:
public MainWindow() { InitializeComponent(); RandomImage(); } private string correctFlag { get; set; } public void RandomImage() { string[] flags = { "Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua and Barboda", "Argentina", "Armenia", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados"}; Random num = new Random(); String correctFlag = flags[num.Next(0, flags.Length)]; String flag2 = flags[num.Next(0, flags.Length)]; String flag3 = flags[num.Next(0, flags.Length)]; String flag4 = flags[num.Next(0, flags.Length)]; String FlagUri = $"flags/flags 3.0/{correctFlag}.png"; flagBox.Source = new BitmapImage(new Uri(FlagUri, UriKind.Relative)); RandomButttons(correctFlag, flag2, flag3, flag4); } public void RandomButttons(string correctFlag, string flag2, string flag3, string flag4) { Random rnd = new Random(); int RndButton = rnd.Next(1, 5); Console.WriteLine(RndButton); if (RndButton == 1)//this works as it should { Button1.Content = correctFlag; Button2.Content = flag2; Button3.Content = flag3; Button4.Content = flag4; } else if (RndButton == 2)//this works as it should { Button2.Content = correctFlag; Button1.Content = flag2; Button3.Content = flag3; Button4.Content = flag4; } else if (RndButton == 3)//this works as it should { Button3.Content = correctFlag; Button2.Content = flag2; Button1.Content = flag3; Button4.Content = flag4; } else if (RndButton == 4)//this works as it should { Button4.Content = correctFlag; Button2.Content = flag2; Button3.Content = flag3; Button1.Content = flag4; } } private void Button1_clicked(object sender, RoutedEventArgs e) { //MessageBox.Show(correctFlag); // here the message box just shows a blank box if ((string)Button1.Content == correctFlag) // this does not activate because of the issue mentioned above { MessageBox.Show("good job"); } } private void Button2_clicked(object sender, RoutedEventArgs e) { if ((string)Button2.Content == correctFlag) // this does not activate because of the issue mentioned above { MessageBox.Show("good job"); } } private void Button3_clicked(object sender, RoutedEventArgs e) { if ((string)Button3.Content == correctFlag) // this does not activate because of the issue mentioned above { MessageBox.Show("good job"); } } private void Button4_clicked(object sender, RoutedEventArgs e) { if ((string)Button4.Content == correctFlag) // this does not activate because of the issue mentioned above { MessageBox.Show("good job"); } }