Как удалить элемент управления Textbox, созданный динамически в WPF Grid?

1

Я не могу удалить текстовое поле, которое создается динамически, используя Combobox selected Item в Grid. если выбранное значение не равно "Другое (описать)", я должен удалить текстовое поле. У меня есть этот код..

private void btn_addnew_Click(object sender, RoutedEventArgs e)
    {
       ComboBox cmb=new ComboBox();
        .....
       cmb.SelectionChanged+= cmb_SelectionChanged;
       .....
    }


void cmb_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        var txt = new TextBox();
        if (e.AddedItems[0].ToString() == "Other (describe)")
        {

            var row = (int)((ComboBox)sender).Tag;
            Grid.SetRow(txt, row);
            Grid.SetColumn(txt, 1);
            txt.Margin = new Thickness(10, 10, 0, 0);
            grid_typeFixture.Children.Add(txt);
        }
        else
           grid_typeFixture.Children.Remove(txt);
    }
Теги:
wpf
combobox

2 ответа

0
Лучший ответ

Назначьте имя для своего TextBox во время создания, вы можете использовать RegisterName,

        txt = new TextBox();
        txt.Margin = new Thickness(10, 10, 0, 0);
        txt.Name = "DynamicLine" + i;
        RegisterName(txt.Name, txt);
        Grid.SetRow(txt, i);
        Grid.SetColumn(txt, 2);
        grid_typeFixture.Children.Add(txt);

И вы можете удалить это, используя FindName

     txt = (TextBox)grid_typeFixture.FindName("lbl_DynamicLine" + row);
     if (txt != null)
            {
                UnregisterName(txt.Name); 
                grid_typeFixture.Children.Remove(txt);
            }
  • 0
    Я уже попробовал это тоже. это не работает
  • 0
    подожди выложу полный код
Показать ещё 9 комментариев
1

Существует риск установки динамических имен в текстовом поле, если он не соответствует правилам помех (например, имя текстового поля не может иметь пробел). Вместо этого вы можете использовать свойство "Тег" в текстовом поле при создании и поиске, когда захотите убери это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню