diff --git a/src/Controls/src/Core/Shell/Shell.cs b/src/Controls/src/Core/Shell/Shell.cs
index 436b77b239d2..8a7b11beb82c 100644
--- a/src/Controls/src/Core/Shell/Shell.cs
+++ b/src/Controls/src/Core/Shell/Shell.cs
@@ -677,6 +677,7 @@ public Task GoToAsync(ShellNavigationState state, bool animate)
///
#pragma warning disable CS1573 // Parameter has no matching param tag in the XML comment (but other parameters do)
+ [Obsolete]
public Task GoToAsync(ShellNavigationState state, IDictionary parameters)
#pragma warning restore CS1573 // Parameter has no matching param tag in the XML comment (but other parameters do)
{
@@ -685,12 +686,35 @@ public Task GoToAsync(ShellNavigationState state, IDictionary pa
///
#pragma warning disable CS1573 // Parameter has no matching param tag in the XML comment (but other parameters do)
+ [Obsolete]
public Task GoToAsync(ShellNavigationState state, bool animate, IDictionary parameters)
#pragma warning restore CS1573 // Parameter has no matching param tag in the XML comment (but other parameters do)
{
return _navigationManager.GoToAsync(state, animate, false, parameters: new ShellRouteParameters(parameters));
}
+ ///
+#pragma warning disable CS1573 // Parameter has no matching param tag in the XML comment (but other parameters do)
+#pragma warning disable RS0016 // Add public types and members to the declared API
+ // This will propagate your navigationState to a key/property with the name "navigationState"
+ // NavigationState isn't maintained between navigations and will only propagate to your page during initial navigation
+ public Task GoToAsync(ShellNavigationState state, object navigationState)
+#pragma warning restore CS1573 // Parameter has no matching param tag in the XML comment (but other parameters do)
+ {
+ return GoToAsync(state, new KeyValuePair("NavigationState", navigationState));
+ }
+
+#pragma warning disable RS0016 // Add public types and members to the declared API
+ // This can be used to propagate your navigationState to a specific key of your choosing.
+ // NavigationState isn't maintained between navigations and will only propagate to your page during initial navigation
+ public Task GoToAsync(ShellNavigationState state, KeyValuePair navigationState)
+#pragma warning restore CS1573 // Parameter has no matching param tag in the XML comment (but other parameters do)
+ {
+ throw new NotImplementedException();
+ }
+
+#pragma warning restore RS0016 // Add public types and members to the declared API
+
public void AddLogicalChild(Element element)
{
if (element == null)