我有2个用户控件。我的MainPage控件和我的编辑功能控件。我的编辑控件使用WCF更新数据库。完成此操作后,我需要重新加载搜索数据库的Mainpage控件,以查看编辑功能控件发生的更改。
我是通过重定向到MainPage在asp.net项目中完成的 - 你知道在Silverlight中是如何完成的。
答案 0 :(得分:0)
好的,我这样做是通过在我的主页顶部创建一个按钮来激活页面的重新加载。 然后,我使用Visual树帮助程序获取按钮并调用它。我是这样做的:
创建一个类来搜索控件: public static class ControlFinder { public static T FindParent(UIElement control)其中T:UIElement { UIElement p = VisualTreeHelper.GetParent(control)as UIElement; if(p!= null) { if(p是T) 将p作为T返回; 其他 return ControlFinder.FindParent(p); } return null; }
}
在控件中找到按钮:
UserControl uc = ControlFinder.FindParent(this); UserControl mainControls = ControlFinder.FindParent(uc); var PageGrid = VisualTreeHelper.GetChild(mainControls,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();