Guest User

Untitled

a guest
Jun 18th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. internal GeometryGroup CurrentGeometry
  2. {
  3. get { return (GeometryGroup)GetValue(CurrentGeometryProperty); }
  4. set { SetValue(CurrentGeometryProperty, value); }
  5. }
  6. internal static readonly DependencyProperty CurrentGeometryProperty =
  7. DependencyProperty.Register(
  8. "CurrentGeometry",
  9. typeof(GeometryGroup),
  10. typeof(ShapeEditorControl),
  11. new FrameworkPropertyMetadata(default(GeometryGroup), CurrentGeometryChanged));
  12.  
  13. public void RemoveDependency()
  14. {
  15. DependencyProperty prop = CurrentGeometryProperty;
  16. var registeredPropertyField = typeof(DependencyProperty).
  17. GetField("RegisteredPropertyList", BindingFlags.NonPublic | BindingFlags.Static);
  18. object list = registeredPropertyField.GetValue(null);
  19. var genericMeth = list.GetType().GetMethod("Remove");
  20. try
  21. {
  22. genericMeth.Invoke(list, new[] { prop });
  23. }
  24. catch (TargetInvocationException)
  25. {
  26. Console.WriteLine("Does not exist in list");
  27. }
  28.  
  29. var propertyFromNameField = typeof(DependencyProperty).
  30. GetField("PropertyFromName", BindingFlags.NonPublic | BindingFlags.Static);
  31. var propertyFromName = (Hashtable)propertyFromNameField.GetValue(null);
  32.  
  33. object keyToRemove = null;
  34. foreach (DictionaryEntry item in propertyFromName)
  35. {
  36. if (item.Value == prop)
  37. keyToRemove = item.Key;
  38. }
  39. if (keyToRemove != null)
  40. propertyFromName.Remove(keyToRemove);
  41. }
Add Comment
Please, Sign In to add comment