Как обновить родительские экраны в lightwitch? - PullRequest
4 голосов
/ 02 июня 2011

Я хочу обновить экраны поиска после добавления новых данных с других экранов. Я пытался сделать

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

но в бета-версии 2

это не работает

1 Ответ

10 голосов
/ 09 июня 2011

нашел его в 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();
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...