如何在 lightswitch 中刷新父屏幕?

发布于 2024-11-12 07:53:38 字数 311 浏览 3 评论 0原文

我想在从其他屏幕添加新数据后刷新搜索屏幕。我试过了

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

,但在 Beta 2 中似乎不起作用

I want to refresh the search screens after adding new data from other screens. I've tried doing

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

but it doesn't seem to work in Beta 2

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薄凉少年不暖心 2024-11-19 07:53:38

发现它在
<一href="http://social.msdn.microsoft.com/Forums/en-US/lightswitchgeneral/thread/cf86ad21-48fb-48f2-87d4-e5b15f8f361c#e6879629-145a-4b18-834c-ebee0cfe1473 ">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();
  });

found it on
http://social.msdn.microsoft.com/Forums/en-US/lightswitchgeneral/thread/cf86ad21-48fb-48f2-87d4-e5b15f8f361c#e6879629-145a-4b18-834c-ebee0cfe1473

Unfortunately the collection of ActiveScreens does not actually contain a set of Screen objects. It contains a proxy class that you can use to access the actual screen object (this is due to different threads running in different threads). Here is some sample code that achieves what you need.

  Microsoft.LightSwitch.Client.IActiveScreen searchScreen = Application.ActiveScreens.Where(a => a.Screen is SearchCustomers).FirstOrDefault();
  searchScreen.Screen.Details.Dispatcher.BeginInvoke(() => 
  {
    ((SearchCustomers)searchScreen.Screen).Customers.Refresh();
  });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文