diff options
Diffstat (limited to 'Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs')
| -rw-r--r-- | Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs b/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs index 5a39948b2..72e7e50c8 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs +++ b/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs @@ -9,6 +9,7 @@ using System.Windows.Controls; using System.Windows.Markup; using System.Windows.Media; using System.Windows.Media.Animation; +using System.Windows.Threading; using Tango.SharedUI.Helpers; namespace Tango.SharedUI.Controls @@ -228,7 +229,7 @@ namespace Tango.SharedUI.Controls /// <returns></returns> public static String GetNavigationName(FrameworkElement element) { - return element.GetValue(NavigationName).ToString(); + return element.GetValue(NavigationName).ToStringSafe(); } #endregion @@ -438,12 +439,24 @@ namespace Tango.SharedUI.Controls public void NavigateTo(FrameworkElement element) { - SelectedElement = element; + var e = Elements.SingleOrDefault(x => x == element); + + if (e != null) + { + SelectedElement = element; + } } - public void NavigateTo(String navigationName) + public FrameworkElement NavigateTo(String navigationName) { - SelectedElement = Elements.SingleOrDefault(x => GetNavigationName(x) == navigationName); + var element = Elements.SingleOrDefault(x => GetNavigationName(x) == navigationName || x.GetType().Name == navigationName); + + if (element != null) + { + SelectedElement = element; + } + + return element; } public FrameworkElement GetAndDetach(String navigationName) |
