制作 UWP 应用。尝试从 Page1.xaml 导航到 Page2.xaml,将一些参数传递给 Page2.xaml,我收到以下错误:没有为此对象定义无参数构造函数。
Page1.xaml 有一个 for 循环,它添加按钮以导航到 Page2.xaml。Page2.xaml 内容是动态创建的,并且根据单击按钮的时间而具有不同的内容。
创建的按钮示例: App 1 App 2 Game 1 Game 2
当您单击每个按钮时,Page2.xaml 上会生成不同的内容。
在 for 循环中在 Page1.xaml 上添加按钮的代码是:
Button OpenAppButton = new Button();
OpenAppButton.Click += async delegate { Frame.Navigate(typeof(AppDisplay), AppDataTemp); };
AppDisplay 是 Page2.xaml。AppDataTemp 是传递给 Page2.xaml 的参数 [字符串]。
AppsDisplayStack.Children.Add(OpenAppButton);
该按钮被添加到名为 AppDisplayStack 的 StackPanel 中。
Page2.xaml 是以下代码:
<Grid>
<StackPanel>
<ScrollViewer>
<StackPanel x:Name="AppStack" VerticalAlignment="Top" HorizontalAlignment="Center">
</StackPanel>
</ScrollViewer>
</StackPanel>
</Grid>
Page2.xaml 中的所有其他内容都是动态创建的。
我有一种感觉,我没有正确传递参数。如果我尝试不使用参数,则会加载 Page2.xaml。有任何想法吗?提前感谢您的帮助。
编辑: 完整错误代码:{System.MissingMethodException:没有为此对象定义无参数构造函数。在 System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean wrapExceptions,Boolean& canBeCached,RuntimeMethodHandleInternal&ctor)在 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Boolean wrapExceptions,Boolean skipCheckThis,Boolean fillCache)在 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly , Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions) at System.Activator.CreateInstance(Type type, Boolean nonPublic, Boolean wrapExceptions) at Microsoft.UI.Xaml.Markup.XamlReflectionType.ActivateInstance() at Windows.UI.Xaml.Controls.Frame .Navigate(类型 sourcePageType,对象参数)在 PermissionsAuditorViewer.AppsNGames.<>c__DisplayClass15_0。
不知道这是否有帮助。
UDPATE: 发现问题。我忘记了我将 Page2.xaml 的构造函数从“public AppDisplay()”更改为“public AppDisplay(string URLData)”。这导致了这个问题。谢谢你们的帮助。欣赏它。