Exemplo n.º 1
0
        private void RaiseCanExecuteChanged()
        {
            var act = new Action(() =>
            {
                if (BoundControls != null && BoundControls.Count > 0)
                {
                    List <WeakReference> garbagedObjects = new List <WeakReference>();
                    BoundControls.ForEach(ce =>
                    {
                        object target = ce.Target;
                        if (target != null)
                        {
                            ((EventHandler)(target)).Invoke(null, EventArgs.Empty);
                        }
                        else
                        {
                            garbagedObjects.Add(ce);
                        }
                    });

                    garbagedObjects.ForEach(x => BoundControls.Remove(x));
                    garbagedObjects.Clear();
                }
            });

            WPFUtils.ExecuteOnUIThread(act);
        }