Guest User

Untitled

a guest
Jan 19th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. private static void IsDefaultChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs args)
  2. {
  3. if ((bool)args.NewValue)
  4. {
  5. Window.Current.CoreWindow.KeyUp += CoreWindowOnKeyUp(dependencyObject);
  6. }
  7. else
  8. {
  9. Window.Current.CoreWindow.KeyUp -= CoreWindowOnKeyUp(dependencyObject);
  10. }
  11.  
  12. }
  13.  
  14. private static void CoreWindowOnKeyUp(CoreWindow sender, KeyEventArgs args, DependencyObject dependencyObject)
  15. {
  16. ((ICommand)dependencyObject.GetValue(Button.CommandProperty)).Execute(null);
  17. }
  18.  
  19. HashTable<DependencyObject> current = new HashTable<DependencyObject>();
  20.  
  21. // Bound as before
  22. private static void IsDefaultChanged(
  23. DependencyObject dependencyObject,
  24. DependencyPropertyChangedEventArgs args)
  25. {
  26. if ((bool)args.NewValue)
  27. current.Add(dependencyObject);
  28. else
  29. current.Remove(dependencyObject);
  30. }
  31.  
  32. // Permanently bound, once.
  33. private static void CoreWindowOnKeyUp(CoreWindow sender, KeyEventArgs args)
  34. {
  35. foreach(var do in current)
  36. {
  37. ((ICommand)do.GetValue(Button.CommandProperty)).Execute(null);
  38. }
  39. }
  40.  
  41. private static void IsDefaultChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs args)
  42. {
  43. var func = (object sender,KeyEventArgs e) =>
  44. {
  45. ((ICommand)dependencyObject
  46. .GetValue(Button.CommandProperty)).Execute(null);
  47. };
  48. if ((bool)args.NewValue)
  49. {
  50. Window.Current.CoreWindow.KeyUp += func;
  51. }
  52. else
  53. {
  54. Window.Current.CoreWindow.KeyUp -= func;
  55. }
  56.  
  57. }
Add Comment
Please, Sign In to add comment