Dynami c CheckBoxes не отображается при нажатии кнопки - PullRequest
0 голосов
/ 14 июля 2020

Я работаю над POS-приложением и пытаюсь загрузить квалификаторы для определенных пунктов меню в свою панель стека. Кнопки Dynami c работают нормально, однако, когда я нажимаю любую из кнопок, ни один из флажков Dynami c (с информацией об элементе квалификатора) не появляется.

void subs_button_click(object sender, RoutedEventArgs e)
    {
        Button btn = sender as Button;
        //isPressed = true;

        

        using (SqlConnection con = new SqlConnection(ApplicationSetting.ConnectionString()))
        {
            using (SqlCommand cmd = new SqlCommand("usp_Orders_InsertNewOrder", con))
            {
                SqlConnection con2 = new SqlConnection("Data Source=<<DATASOURCE>>;Initial Catalog=food;Persist Security Info=True;User ID=<<USERID>>;Password=<<PASSWORD>>");
                con2.Open();
                SqlCommand cmd2 = new SqlCommand("Select ID, sub_name, price, quantity from sub_cat", con2);
                SqlDataReader data = cmd2.ExecuteReader();


                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@OrderItem", btn.Content);
                cmd.Parameters.AddWithValue("@price", btn.Tag);
                //will need to add qualifiers
                cmd.Parameters.AddWithValue("@qualifiers", 0);
                cmd.Parameters.AddWithValue("@ID", 0);


                con.Open();
                var queryResult = cmd.ExecuteScalar(); int commit = 0;
                if (queryResult != DBNull.Value)
                {
                    commit = Convert.ToInt32(cmd.ExecuteScalar());
                }

                if (btn.Content == "Ham and Cheese")
                {
                    SqlConnection con3 = new SqlConnection("Data Source=<<DATASOURCE>>;Initial Catalog=food;Persist Security Info=True;User ID=<<USERID>>;Password=<<PASSWORD>>");
                    con3.Open();
                    SqlCommand cmd3 = new SqlCommand("Select qual_name from qualifiers", con3);
                    SqlDataReader data1 = cmd3.ExecuteReader();

                    while (data1.Read())
                    {

                        //Dynamic checkboxes

                        CheckBox chk = new CheckBox();
                        chk.Content = data1.GetValue(1).ToString();
                        main.Children.Add(chk);
                    }

                }

                //int id = Convert.ToInt32(cmd.ExecuteScalar());
                MessageBox.Show(btn.Content + " has been added to order", "Success", MessageBoxButton.OK);
               
            }
        }

    }

Я ссылаюсь на subs_button_click здесь: * На 1005 *

 void button_click(object sender, RoutedEventArgs e)
    {
        Button btn = sender as Button;

        //if user pressed subs
        if (btn.Name == "Subs")
        { 
            Debug.WriteLine("button pressed");
            SqlConnection con = new SqlConnection("Data Source=<<DATASOURCE>>;Initial Catalog=food;Persist Security Info=True;User ID=<<USERID>>;Password=<<PASSWORD>>");
            con.Open();
            SqlCommand cmd = new SqlCommand("Select ID, sub_name, price, quantity from sub_cat", con);
            SqlDataReader data = cmd.ExecuteReader();

            //for (int i = 1; i < 21; i++)
           // {
                while (data.Read())
                {
                  

                    Button b = new Button();
                    //b.Name = data.GetValue(1).ToString();
                    b.Content = data.GetValue(1).ToString();
                    b.Tag = data.GetValue(2);
                    //b.HorizontalAlignment = HorizontalAlignment.Left;
                    b.Width = 100;
                    b.Height = 100;
                    b.Margin = new Thickness(20, 0, 0, 20);
                    b.FontSize = 16;
                    b.FontFamily = new FontFamily("Gadugi"); 
                    b.Style = (Style)FindResource("RoundedButtonStyle");
                    b.Click += new RoutedEventHandler(subs_button_click);
                    //add buttons to the stack panel
                    main.Children.Add(b);
                }
          //  }
            con.Close();

        }
    }

и button_click имеется ссылка в классе publi c. Согласно приложенному изображению, я хочу, чтобы флажки Dynami c появлялись на вкладке Qualifiers в моем окне. Я считаю, что мой код верен с точки зрения извлечения данных квалификатора из базы данных, однако он все еще не отображается. Я уверен, что ответ здесь довольно прост, заранее спасибо всем за ваше время и помощь. ВЫВОД ИЗ КОДА

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...