事件处理函数未针对创建的动态复选框启动

时间:2013-05-15 20:09:27

标签: c# wpf winrt-xaml dynamic-controls

首先,我必须提到我是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

}


在运行期间检查复选框,但相关功能不起作用。
提前致谢

1 个答案:

答案 0 :(得分:2)

尝试;

  • 使事件处理程序公开&amp;非静态的,
  • 确保没有人吃掉这些活动。

怎么样:

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