2011-09-05 22 views
2

我有一個控件內的控件,在一個控件中。Silverlight 3中的路由事件?

像這樣..

QuizMaster - >問題 - >解答 - >單選

當其中一個答案被選中我想在Quizmaster的函數調用AskNextQuestion()來運行。

我該怎麼做?

回答

1

您會在嵌套控件中創建一個事件,並讓您的QuizMaster訂閱該事件。

在你Answers補充一點:

public static event Action<bool> IsAnswered; 

,當你在其處理

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

,並在選擇RadioButton觸發此事件的QuizMaster訂閱這個靜態的事件:

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

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

即使QuizMaster不知道答案,只有Q uestion的確如此。 –

+0

@Joseph Le Brech:看我的更新。 – VoodooChild

+0

此作品完美,謝謝。 –