如何创建按钮 由 Foreach .

本文关键字:按钮 Foreach 创建 何创建 | 更新日期: 2023-09-27 18:30:25

我想通过Foreach创建许多按钮,这些按钮打印Uri的属性。 但我不知道该怎么做。 你能告诉我怎么做吗?这是我的代码:

private void CreateButtons()
{
    Uri uri = new Uri("/Pages/PageTest.xaml?Name=Stephen&Age=17",UriKind.Relative);
    foreach(var pi in typeof(Uri).GetProperties())
    {
        //create button
        Button btn = new Button();
        btn.Content = pi.Name;
        btn.Margin = new Thickness(0,0,0,12);
        //i think this is bug, but i don't know,how to do
        btn.Click += (se,ev)=>
        {
           MessageBox.Show(pi.GetValue(btn,null).ToString());
        }
        stackPanel.Children.Add(btn);            
    }
}

如何创建按钮 由 Foreach .

您使用了错误的目标

圆周率。GetValue(btn,null)

您正在查询 URI 属性,但目标是按钮对象。

你需要这样的东西:

MessageBox.Show(pi.GetValue(uri, null).ToString());

我猜你在事件处理程序中遇到了异常。

尝试在引发异常时启用中断 (调试|异常 ->选中公共语言运行时异常旁边的"抛出")。

然后在附加调试器的情况下运行,并查看单击按钮时会发生什么情况。 我怀疑空指针异常