private void ActivityOnResulted(Utilities.Activity activity, object result) { if (!System.Windows.Application.Current.CheckAccess()) { System.Windows.Application.Current.Dispatcher.BeginInvoke( (Action <Utilities.Activity, object>)ActivityOnResulted, DispatcherPriority.ApplicationIdle, activity, result); return; } var main = ((MainWindow)System.Windows.Application.Current.MainWindow); FrameworkElement entity; var func = result as Func <FrameworkElement>; if (func != null) { entity = func.Invoke(); } else { entity = result as FrameworkElement ?? new ContentPresenter { Content = result, DataContext = result }; } main.Results.Items.Add(entity); //main.Navigator.Children.Add(entity); }
private void ActivityOnResulted(Utilities.Activity activity, object result, DependencyObject sender) { if (!System.Windows.Application.Current.CheckAccess()) { System.Windows.Application.Current.Dispatcher.BeginInvoke( (Action <Utilities.Activity, object, DependencyObject>)ActivityOnResulted, DispatcherPriority.ApplicationIdle, activity, result, sender); return; } var results = (ObservableCollection <object>)sender.GetValue(ResultsProperty); if (results == null) { results = new ObservableCollection <object>(); sender.SetValue(ResultsProperty, results); } results.Add(result); /* * FrameworkElement entity; * var func = result as Func<FrameworkElement>; * if (func != null) * { * entity = func.Invoke(); * } * else * { * entity = result as FrameworkElement ?? new ContentPresenter * { * Content = result, * DataContext = result * }; * } */ //Results.Items.Add(entity); //main.Navigator.Children.Add(entity); }
private void AppOnActivityCompleted(Utilities.Activity activity) { // update list of recent activites Dispatcher.BeginInvoke((Action)(() => { using (var data = new DatalayerDataContext()) { var recent = data.ActivityQueues .Where(x => x.TimeStarted >= App.Start && x.TimeCompleted != null && x.TimeAdded >= App.Start) .ToList(); var activities = recent.Select(x => App.Activities.First(y => y.Entity.Id == x.ActivityId)) .ToList(); var oldItems = Recent.Children.OfType <ContentPresenter>() .Where(x => !activities.Contains(x.Content)) .ToList(); var newItems = activities.Where(x => !Recent.Children .OfType <ContentPresenter>() .Select(y => y.Content).Contains(x)) .ToList(); foreach (var old in oldItems) { Recent.Children.Remove(old); } foreach (var newItem in newItems) { Recent.Children.Add(new ContentPresenter { Content = newItem, Margin = new Thickness(5) }); } } }), DispatcherPriority.ApplicationIdle); }