在Silverlight中加载UserControls

时间:2011-04-07 09:04:04

标签: c# silverlight

我有一个名为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控件的原始实例。

0 个答案:

没有答案