Как сделать зацикливание, чтобы добавить новую базу ComboBox на нее ItemsSource? - PullRequest
0 голосов
/ 17 мая 2019

Я сделал свой ComboBox в коде и его цикл. Это похоже на то, когда пользователь выбирает элемент в текущем поле со списком, он добавляет поле со списком. внутри функции с именем DropDownClosed.

ComboBox comboBox = new ComboBox();
comboBox.ItemsSource = menu.ToList();
comboBox.DropDownClosed += ComboBox_DropDownClosed;  
stackPanel.Children.Add(comboBox); 

Я хочу добавить новый комбинированный список (в зависимости от того, сколько меню внутри ItemsSource). Допустим, у него 5 меню внутри menu.ToList(), поэтому оно будет повторяться 5 раз. в настоящее время это добавит бесконечное число этого.

как я могу это сделать?

и, если возможно, я хочу что-то подобное.

пусть говорит, внутри меню есть 5 меню, которое

burger
fries
hotdog
bread
chicken

если для первого комбинированного списка пользователь выберет курицу, то во втором комбинированном списке (добавляемом динамически с помощью циклов) больше не будет chicken, поскольку он больше не создает элементов (иначе можно будет отключить нажатие), и он продолжается до тех пор, пока все меню не будет выбран.

можно ли это сделать?

1 Ответ

0 голосов
/ 17 мая 2019

Вы можете сделать что-то подобное, если хотите изменить ItemsSource cmbs, которые вы можете назначить из allCmbx в зависимости от ваших потребностей

List<ComboBox> allCmbx = new List<ComboBox>();
        List<string> allItems = new List<string> { "1", "2", "3", "4", "5" };
        public MainWindow()
        {
            InitializeComponent();


            ComboBox comboBox = new ComboBox();
            comboBox.ItemsSource = allItems;
            comboBox.DropDownClosed += ComboBox_DropDownClosed;
            stackPanel.Children.Add(comboBox);
            allCmbx.Add(comboBox);


        }

        private void ComboBox_DropDownClosed(object sender, EventArgs e)
        {

            ComboBox mainComboBox = (ComboBox)sender;
            mainComboBox.DropDownClosed -= ComboBox_DropDownClosed;
            ComboBox comboBox = new ComboBox();
            allItems.Remove(mainComboBox.SelectedItem.ToString());
            comboBox.ItemsSource = allItems;
            comboBox.DropDownClosed += ComboBox_DropDownClosed;
            stackPanel.Children.Add(comboBox);
            allCmbx.Add(comboBox);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...