2015-07-03 86 views
1

創建10 TextBlock的程序在Windows手機應用程序8.1
現在我想螺紋事件添加到每個TextBlock的和額外的參數傳遞給它,這樣我可以找到它的TextBlock被竊聽如何將額外參數傳遞給Tapped事件?

我使用此代碼創建TextBlock的有抽頭事件:

for (int i=1;i<11;i++) 
{ 
    TextBlock txtName = new TextBlock(); 
    txtName.Tapped += TxtName_Tapped; 
} 

private void TxtName_Tapped(object sender, TappedRoutedEventArgs e) 
{ 
    // Something 
} 

如何傳遞額外參數?

+0

你能不要'((TextBlock)sender).Name'來查看哪一個被點擊? – Ric

+0

我不知道如何使用這個。請告訴我如何 – WithoutBrain1994

+0

即將轉換爲答案,但已提供相同的想法 – Ric

回答

1

由於@Ric建議你總是可以做:

​​
+0

這將不會工作,因爲名稱屬性從未分配。 – daryal

0

您可以使用sender參數來標識TextBlock,而不是發送額外的參數。

for (int i=1;i<11;i++) 
{ 
    TextBlock txtName = new TextBlock(); 
    txtName.Name = i.ToString(); 
    txtName.Tapped += TxtName_Tapped; 
} 

private void TxtName_Tapped(object sender, TappedRoutedEventArgs e) 
{ 
    TextBlock textBlock = sender as TextBlock; 
    switch(textBlock.Name) 
    {  
     // list possible cases 
     case "1": 
     { 
      // do something 
     } 
    } 
} 

也許你甚至不需要switch語句,因爲我不知道確切的要求。

0

在我看來,很容易解決方案是使用Tag屬性:

for (int i=1;i<11;i++) 
{ 
    TextBlock txtName = new TextBlock(); 
    txtName.Tag = i; 
    txtName.Tapped += TxtName_Tapped; 
} 

和:

private void TxtName_Tapped(object sender, TappedRoutedEventArgs e) 
{ 
    int tag = ((TextBlock)sender).Tag; 
    //do something 
} 
相關問題