2010-06-14 3 views
2

나는 몇 가지 동적 button.and 나는 그것에 정수 값을 저장하려는 문제가 있습니다.어떻게 런타임에 값을 버튼에 저장할 수 있습니까?

어떻게 내가 그것을 미리 shashank

DataView dv = new DataView(dtCat, "PK_CATEGORY_ID IN(" + categoryIds.ToString() + "0)", "PK_CATEGORY_ID", DataViewRowState.CurrentRows); 

foreach (DataRowView rr in dv) 
{ 
    //MessageBox.Show(rr[0].ToString() + "------------" + rr[1].ToString()); 

    Button b2 = new Button(); 

    //b2.Name = rr[0].ToString(); 
    b2.Name = ""; 
    b2.Height = 200; 
    b2.Width = 200; 
    b2.Margin = new Thickness(0, -100, 0, 0); 
    b2.HorizontalAlignment = HorizontalAlignment.Left; 
    b2.Content = rr[1].ToString(); 
    b2.Background = System.Windows.Media.Brushes.Pink; 
    b2.Click += new RoutedEventHandler(b2_Click); 
    btncanvas.Children.Add(b2); 
    Canvas.SetLeft(b2, b2.Width * i); 
    i = i + 1; 
    MessageBox.Show(rr[0].ToString()); 
    b2.Tag = rr[0].ToString(); 

} 


void b2_Click(object sender, RoutedEventArgs e) 
{ 
    Button clicked = (Button)sender; 

    categoryname = clicked.Name; 
} 

답변

2

Tag 속성

감사를 달성 할 수있는 버튼의 클릭 이벤트에 그 값을 얻을 당신이 원하는 아마.

당신은 이미 귀하의 예제에서 사용하지만, 단지이됩니다

b2.Tag = integerValue; 

그런 다음 클릭 핸들러에서 다시 정수 값을 얻을 수 Convert.ToInt32(object) 방법을 사용하십시오

int retrievedValue = Convert.ToInt32(clicked.Tag); 
+0

를하지만 오류를 줄 그 .. 지정된 캐스트가 유효하지 않습니다. – Shashank

+0

그것이 효과가 있습니다 – Shashank

+0

@SHASHANK - 코드를 수정했습니다. Visual Studio에 액세스 할 필요없이 입력했습니다.) – ChrisF

관련 문제