2017-01-07 3 views
0

Справка. Я хочу, чтобы создать динамические кнопки внутри StackPanel, я думаю, у меня есть проблема в моем коде Это мой код:Динамическая кнопка создается в разных Windows вместо создания только в Stackpanel

 using (MySqlConnection conn = new MySqlConnection(constr)) 
     { 
      conn.Open(); 

       using (MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT GarmentName FROM tblthesis", conn)) 
      { 
       ds = new DataSet(); 
       adapter.Fill(ds); 

       foreach (DataRow dataRow in ds.Tables[0].Rows) 
       { 


        Button button = new Button(); 
        button.Content = dataRow[0].ToString(); 

        WindowTry winwin = new WindowTry(); 
        winwin.sp.Children.Add(button); 
        winwin.Show(); 

Примечание (зр) является StackPanel моего окна windowTry.

У меня есть 5 записей в моей базе данных, в которых я использовал это, чтобы называть мои кнопки, , но когда я пытаюсь поместить это в WindowTry и запустите его. Он создает 5 окон по 1 кнопке каждый, что мне делать? пожалуйста помоги.

ответ

0

Вы создаете для каждого DataRow окно, добавляете к нему кнопку и показываете его, поэтому оно работает так же, как и реализовано. Вам нужно создать окно перед циклом и показать его после него.

  WindowTry winwin = new WindowTry(); 
      foreach (DataRow dataRow in ds.Tables[0].Rows) 
      { 
       Button button = new Button(); 
       button.Content = dataRow[0].ToString(); 

       winwin.sp.Children.Add(button); 
      } 
      winwin.Show(); 
0

Вы должны поместить эти строки вне foreach цикла:

WindowTry winwin = new WindowTry(); 
foreach (DataRow dataRow in ds.Tables[0].Rows) 
{ 
// the rest of your code 
} 
winwin.Show(); 

 Смежные вопросы

  • Нет связанных вопросов^_^