我跟着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裏面,不會運行。 –
我只提供了一個按預期工作的示例,並且可以訪問父頁上的方法。 –