如何将事件处理程序绑定到集合中的动态创建的控件?

时间:2015-04-27 04:37:51

标签: c# linq list collections eventhandler

我再次使用C#,并试图赶上一些新的方面,因为我最后一次使用它LINQ还没有存在。我正在尝试在Windows应用商店应用中创建日历(而不是日期选择器),并动态创建大多数控件。单击/点击日期时,我希望它在RichTextBlock中显示信息。那部分不是问题......我有一个Grid控件,并且可以通过在List中创建RichTextBlocks来自己迭代创建日历来创建日历,自然就是calBlocks。这是让我适合的部分:

    for (int i = 0; i < DateTime.DaysInMonth(CurrentDate.Year, CurrentDate.Month); i++)
    {
        calBlocks.Add(new RichTextBlock());
        calBlocks[i].Tapped += new TappedEventHandler(calBlock_Clicked);
    }

我已经定义了一个calBlock_Clicked处理程序,但它似乎永远不会到达。我似乎错过了一些东西,我认为它是非常基本的东西,但我似乎无法看到它。

如果您有兴趣,这是calBlock_Clicked处理程序。它非常基础,目前仅用于调试目的:

    void calBlock_Clicked(object sender, TappedRoutedEventArgs e)
    {

        Paragraph MainHeader = new Paragraph();
        Run HeaderDate = new Run();

        HeaderDate.Text = "This would be a long format date";

        MainHeader.Inlines.Add(HeaderDate);

        TestBlock.Blocks.Add(MainHeader);
    }

我看过了,但我还没有看到任何回答这个问题的东西......有几个类似的帖子,但没有什么能完全回答我的问题。如果已经有,请指点他们!

1 个答案:

答案 0 :(得分:1)

在构建时将IsTextSelectionEnabled的{​​{1}}属性设置为RichTextBlock

这将重新启用false事件。

示例:

Tapped