2011-06-02 68 views
4

我想从其他屏幕添加新数据后刷新搜索屏幕。我试着做如何刷新lightswitch中的父屏幕?

foreach (var parentScreen in this.Application.ActiveScreens.OfType<ScreenType>()) 
{ 
    //Invoke the refresh 
    parentScreen.Details.Dispatcher.BeginInvoke(() => parentScreen.Details.Commands.Refresh.Execute()); 
} 

,但它似乎并没有在测试版工作2

回答

10

发现它 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(); 
    }); 
+0

任何想法如何实现LightSwitch HTML客户端? – spikey 2015-05-28 08:17:57