2012-05-10 8 views
3

Я программно сгенерировал много текстовых блоков. Я хотел бы привязать к ним функцию onclick ... легко написать текстовый блок для моего кода xaml, но как я могу это сделать, если текстовые блоки программно сгенерированы?Onclick на программно сгенерированном элементе

То, что я далеко:

TextBlock tb1 = new TextBlock(); 
tb1.KeyDown += new System.Windows.Input.KeyEventHandler(MyTextBlock_KeyDown); 
... 
private void MyTextBlock_KeyDown(object sender, GestureEventArgs e) { 
    MessageBox.Show("hello world"); 
} 
+0

ли вы быть в состоянии предоставить свой код XAML, так что может быть обеспечена точная C# версии? –

ответ

3
public MainPage() 
{ 
    InitializeComponent(); 

    TextBlock block = new TextBlock(); 
    block.Text = "Tap me"; 
    block.Tap += new EventHandler<GestureEventArgs>(block_Tap); 

    TitlePanel.Children.Add(block); 
} 

void block_Tap(object sender, GestureEventArgs e) 
{ 
    //Do something 
} 

Это прекрасно работает ...

+0

Я получаю сообщение об ошибке: Нет перегрузки для 'MyTextBlock_KeyDown' соответствует делегату 'System.Windows.Input.KeyEventHandler' –

+0

Создал ли обработчик событий? Вы должны адаптировать образец кода, который я опубликовал, чтобы он работал с вашим конкретным кодом. – Dante

+0

Пожалуйста, проверьте мой код, я внес некоторые изменения ... спасибо. –