我想在从其他屏幕添加新数据后刷新搜索屏幕。我试过做
foreach (var parentScreen in this.Application.ActiveScreens.OfType<ScreenType>())
{
//Invoke the refresh
parentScreen.Details.Dispatcher.BeginInvoke(() => parentScreen.Details.Commands.Refresh.Execute());
}
但它似乎在 Beta 2 中不起作用
最佳答案
发现它
http://social.msdn.microsoft.com/Forums/en-US/lightswitchgeneral/thread/cf86ad21-48fb-48f2-87d4-e5b15f8f361c#e6879629-145a-4b18-834c-ebee0cfe1473
不幸的是,ActiveScreens 的集合实际上并不包含一组 Screen 对象。它包含一个可以用来访问实际屏幕对象的代理类(这是由于在不同线程中运行的不同线程)。这是一些示例代码,可以实现您的需求。
Microsoft.LightSwitch.Client.IActiveScreen searchScreen = Application.ActiveScreens.Where(a => a.Screen is SearchCustomers).FirstOrDefault();
searchScreen.Screen.Details.Dispatcher.BeginInvoke(() =>
{
((SearchCustomers)searchScreen.Screen).Customers.Refresh();
});
关于silverlight - 如何在灯开关中刷新父屏幕?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6212831/