我有一个控件,在一个控件内,在一个控件内。

像这样

QuizMaster->问题->答案-> RadioButton

当答案之一被选中时,我要运行Quizmaster中称为AskNextQuestion()的函数。

我怎么做?

最佳答案

您将在嵌套控件中创建一个事件,并让您的QuizMaster订阅该事件。

在您的Answers中添加以下内容:

public static event Action<bool> IsAnswered;


并在其处理程序中选择RadioButton时触发此事件

public void OnRadioButtonSelected(object sender, SomeEventArgs e)
{
  if(IsAnswered != null)
    IsAnswered(true);
}


并在您的QuizMaster中订阅此静态事件:

public void SomeMethod()
{
  Answers.IsAnswered += new Action<bool>(Answers_IsAnsweredCompleted);
}

public void Answers_IsAnsweredCompleted(bool IsAsnwered)
{
  //call your method in QuizMaster
}

10-04 12:19