我想通过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);
}
}
答案 0 :(得分:0)
您使用错误的目标
pi.GetValue(BTN,null)的
您正在查询URI属性,但您的目标是按钮对象。
您需要以下内容:
MessageBox.Show(pi.GetValue(uri, null).ToString());
答案 1 :(得分:0)
我猜你在事件处理程序中遇到异常。
尝试在抛出异常时启用break(调试|异常 - >检查“公共语言运行时异常”旁边的“Thrown”)。
然后在附加调试器的情况下运行,看看单击按钮时会发生什么。我怀疑是NullPointerException