我想导航到具有多个参数的页面。
为此,我使用字典:
await Shell.Current.GoToAsync($"{nameof(DetailPage)}?",
new Dictionary<string, string>
{
["Name"] = s.RecipeName,
["Ingredients"] = s.Ingredients,
["Steps"] = s.Steps
});
但在Visual Studio中,我得到这个错误:
Argument 2: cannot convert from 'System.Collections.Generic.Dictionary<string, string>' to 'bool'
有人知道如何解决这个问题吗?
2条答案
按热度按时间lf3rwulv1#
GoToAsync()
的方法签名需要一个bool
或IDictionary<string, object>
作为第二个参数,而您传递给它的是一个Dictionary<string, string>
。由于编译器找不到任何匹配的重载,它只尝试第一个重载。但是,您的
Dictionary<string, string>
不能被类型转换为bool
,因此出现编译器错误。有关不同
GoToAsync()
变体的更多信息:https://learn.microsoft.com/en-us/dotnet/api/microsoft.maui.controls.shell.gotoasync?view=net-maui-7.0请注意,
Dictionary<string, string>
与Dictionary<string, object>
不同,只有后者才是编译器可接受的,因为它具有与方法重载的第二个变体(或第一个变体,如果您在第二个位置提供bool
)的签名中指定的接口相同的类型参数。要解决此问题,请将代码更改为以下代码:
这应该可以工作,因为您可以将
string
赋值给object
。ohtdti5x2#
您的代码应为