J'ai suivi la question this et j'ai essayé de construire ma solution. Le problème est que 'UserControlButtonClicked' semble être null! Donc 'UserControlButtonClicked (this, EventArgs.Empty)' dans le si, ne fonctionne pas, et la méthode 'addStepContent' dans la page parente n'est jamais appelée.Appel d'une méthode d'une page parente à partir de UserController
UserControl 'StepsBar'
public sealed partial class StepsBar : UserControl
{
public event EventHandler UserControlAddStepContent;
[...]
public StepsBar()
{
this.InitializeComponent();
Image step_1 = new Image();
ButtonInfo step_1Info = new ButtonInfo();
step_1Info.Add((int)stepNumber.one, (int)stepStatus.normal);
step_1.Tag = step_1Info;
step_1.Source = setBackground((int)stepStatus.normal);
step_1.Tapped += stepTapped;
[...]
}
public void stepTapped(Object sender, RoutedEventArgs e)
{
[...]
if (step != null)
{
[...]
firePageEvent();
}
}
public void firePageEvent()
{
if (UserControlAddStepContent != null)
{
UserControlAddStepContent(this, EventArgs.Empty);
}
}
Parent page
public Violation()
{
this.InitializeComponent();
StepsBar stepsBar = new StepsBar();
stepsBar.UserControlAddStepContent += new EventHandler(addStepContent);
}
private void addStepContent(object sender, EventArgs e)
{
CheckBox check_1 = new CheckBox();
check_1.Content = "Check me!";
bodyStackPanel.Children.Add(check_1);
}
comme je l'ai écrit dans la question, j'utilise l'exemple exact que vous coller, mais au lieu de travail : UserControlButtonClicked 'semble être null! Donc 'UserControlButtonClicked (this, EventArgs.Empty)' dans le si, ne fonctionne pas. –
Je vous ai seulement fourni un exemple qui fonctionne comme prévu et une méthode sur une page parente accessible. –