事件处理程序函数不会为创建的动态复选框触发

本文关键字:动态 复选框 创建 程序 函数 事件处理 | 更新日期: 2023-09-27 18:14:00

首先,我必须提到我是c#的新手。
我正在用xaml和c#开发一个windows 8 metro应用程序。我动态地创建了一个复选框数组,并为每个复选框分配了一个指针事件。
奇怪的问题是,指针事件没有触发注册函数。
如果我使用设计工具创建相同的复选框(我使用的是visual Studio 2012),奇怪的是,这个功能这次确实起作用了。因为我直到运行时才知道要创建的复选框的数量,所以使用设计工具来处理复选框并不是一种选择。

我正在运行的代码如下:


CheckBox[] chk=new CheckBox[count];
int x=20; //Width of each checkbox(to be incremented for every iteration)
for( int i = 0; i < count ; i++ )
{
    chk[i] = new CheckBox();
    chk[i].HorizontalAlignment = HorizontalAlignment.Left;
    chk[i].Margin = new Thickness(1100, x, 0, 0);
    chk[i].VerticalAlignment = VerticalAlignment.Top;
    chk[i].Height = 30;
    chk[i].Width = 35;
    chk[i].PointerPressed += new PointerEventHandler(chkhandler);
    gridit.Children.Add(chk[i]);
    x = x + 35;
}
private static void chkhandler(object obj, PointerRoutedEventArgs arg)
{
    textblock1.Text="Testing";  //Sample Textblock
}




复选框在运行时被选中,但相关的函数不起作用。
提前致谢

事件处理程序函数不会为创建的动态复选框触发

Try;

  • 将事件处理程序设置为公共&非静态,
  • 确保没有人在吃这些活动。

这个呢:

chk[i].AddHandler(PointerPressedEvent, 
    new PointerEventHandler(SomeButton_PointerPressed), true);