我跟着this的问题,并试图构建我的解决方案。问题是'UserControlButtonClicked'显示为空!所以'UserControlButtonClicked(this,EventArgs.Empty)'在if内部,不运行,并且父页面中的方法'addStepContent'永远不会被调用。从UserController调用父页面的方法
用户控件“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);
}
}
父页
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);
}
正如我在这个问题写了,我用粘贴确切的例子,而是工作:UserControlButtonClicked'显示为空!所以'UserControlButtonClicked(this,EventArgs.Empty)'在if里面,不会运行。 –
我只提供了一个按预期工作的示例,并且可以访问父页上的方法。 –