private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { IQueryable <World> query = null; Table <World> table; if (worldTable == null) { table = worldworkspace.WorldTable; } else { table = worldTable; } switch (comboBox1.Text) { case "Select all where Continent is equal to North America": query = this.GetContinentsForNorthAmerica(table); break; case "Select all where Pop_1994 is greater then 4,000,000": query = this.GetGreaterThenFilter(table, 4000000); break; } QueryTextbox.Clear(); if (query != null) { QueryTextbox.Text = query.ToQueryString(); } }
public Task <WallpaperSource> WaitForButtonPressAsync() { Dispatcher.BeginInvoke(new Action(() => { this.Focus(); QueryTextbox.Focus(); })); var tcs = new TaskCompletionSource <WallpaperSource>(); RoutedEventHandler negativeHandler = null; KeyEventHandler negativeKeyHandler = null; RoutedEventHandler affirmativeHandler = null; KeyEventHandler affirmativeKeyHandler = null; KeyEventHandler escapeKeyHandler = null; Action cleanUpHandlers = null; cleanUpHandlers = () => { QueryTextbox.KeyDown -= affirmativeKeyHandler; this.KeyDown -= escapeKeyHandler; NegativeButton.Click -= negativeHandler; AffirmativeButton.Click -= affirmativeHandler; NegativeButton.KeyDown -= negativeKeyHandler; AffirmativeButton.KeyDown -= affirmativeKeyHandler; }; escapeKeyHandler = (sender, e) => { if (e.Key != Key.Escape) { return; } cleanUpHandlers(); tcs.TrySetResult(null); }; negativeKeyHandler = (sender, e) => { if (e.Key != Key.Enter) { return; } cleanUpHandlers(); tcs.TrySetResult(null); }; affirmativeKeyHandler = (sender, e) => { if (e.Key != Key.Enter) { return; } cleanUpHandlers(); tcs.TrySetResult(GetResult()); }; negativeHandler = (sender, e) => { cleanUpHandlers(); tcs.TrySetResult(null); e.Handled = true; }; affirmativeHandler = (sender, e) => { cleanUpHandlers(); tcs.TrySetResult(GetResult()); e.Handled = true; }; NegativeButton.KeyDown += negativeKeyHandler; AffirmativeButton.KeyDown += affirmativeKeyHandler; QueryTextbox.KeyDown += affirmativeKeyHandler; this.KeyDown += escapeKeyHandler; NegativeButton.Click += negativeHandler; AffirmativeButton.Click += affirmativeHandler; return(tcs.Task); }