public static void InvokeAndWait(this SplitButton splitButton) { if (splitButton == null) { Log.Error("Attempted to invoke a null split button! Dumping context..."); DumpHelper.DumpFullContext(); throw new ArgumentNullException("splitButton"); } using (var waiter = splitButton.GetInvokedWaiter()) { splitButton.Invoke(); waiter.Wait(); } Wait.ForIdle(); }