我有一个名为DefaultPage的页面和一个UserControl(Pageload)。当我加载页面时,它会创建UserControl的实例。
private void LoadMainData()
{
PageLoad myPage = new PageLoad(PassedData);
while (MainControls.Children.Count > 0)
MainControls.Children.RemoveAt(0);
MainControls.Children.Add(myPage);
}
在PageLoad usercontrol中,我有一个按钮,用于点击默认页面上的按钮:
private void Button_Click(object sender, RoutedEventArgs e)
{
DefaultPage uc = new DefaultPage();
var PageGrid = VisualTreeHelper.GetChild(uc, 0);
var StackPanel = VisualTreeHelper.GetChild(PageGrid, 0);
Button RefreshButton = (Button)VisualTreeHelper.GetChild(StackPanel, 0);
ButtonAutomationPeer buttonAutoPeer = new ButtonAutomationPeer(RefreshButton);
IInvokeProvider invokeProvider = buttonAutoPeer.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
invokeProvider.Invoke();
}
单击此按钮时,它会执行以下操作:
private void LoadData_Click(object sender, RoutedEventArgs e)
{
PassedData = "Clicked Into new Data";
LoadMainData();
}
我期待的是当我单击控件(PageLoad)上的按钮时,它会通过PassedData(“Clicked into new data”)并使用传递的值重新加载PageLoad控件的新实例。然而,这不起作用,因为它保留了PageLoad控件的原始实例。