Получить номер определенной кнопки на панели стека - PullRequest
1 голос
/ 07 августа 2020

Привет, я хотел бы создать панель стека с несколькими кнопками внутри, и когда я нажимаю одну, она сообщает мне, какая это кнопка. Например, когда я нажимаю вторую кнопку сверху, я возвращаю цифру 2 и т. Д.

Кнопки создаются с этим l oop:

for (int i = 0; i < LBresponse.Items.Count; i++)
{
  System.Windows.Controls.Button BTclear = new Button();
  BTclear.Content = "Clear";
  BTclear.Width = 50;
  BTclear.Height = 20;
  BTclear.HorizontalAlignment = HorizontalAlignment.Right;
  BTclear.Click += Button_Click;
  BTclear.IsEnabled = true;
  STPresponse.Children.Add(BTclear);
}

Я мог бы сделать это с расположением кнопки, но я надеюсь, что есть лучшее решение.

Одна идея - поместить число в контекст при создании кнопки, но это было бы некрасиво.

1 Ответ

1 голос
/ 07 августа 2020

Вы можете где-нибудь сохранить номер или индекс, например, в свойстве Tag:

for (int i = 0; i<LBresponse.Items.Count; i++)
{
    System.Windows.Controls.Button BTclear = new Button();
    BTclear.Tag = i;
    BTclear.Content = "Clear";
    BTclear.Width = 50;
    BTclear.Height = 20;
    BTclear.HorizontalAlignment = HorizontalAlignment.Right;
    BTclear.Click += (ss, ee) => 
    {
        MessageBox.Show(((Button)ss).Tag.ToString());
    };
    BTclear.IsEnabled = true;
    STPresponse.Children.Add(BTclear);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...