Как отключить метод, когда он мне не нужен? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть приложение базы данных WPF. В моей базе данных 10 таблиц, но одна из них имеет разное количество столбцов. Я могу редактировать данные с помощью текстовых полей. Поэтому я сделал метод для создания большего количества текстовых полей. Если я выберу таблицу с десятью столбцами, появятся десять текстовых полей, но если я выберу другую таблицу с меньшим количеством столбцов, все равно останется десять текстовых полей.

Все мои таблицы, кроме одной, имеют только два столбца, поэтому я создал два текстовых поля в XAML и метод для создания оставшихся столбцов, когда выбрана таблица из десяти столбцов. Вот пример моего метода:

public void AddTb()
    {
        TextBox tb2 = new TextBox();
        tb2.TextWrapping = TextWrapping.Wrap;
        tb2.Width = 60;
        tb2.Height = 23;
        tb2.Foreground = Brushes.White;
        tb2.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x36, 0x4d, 0x63));
        tb2.Margin = new Thickness(0, 0, 10, 229);
        Grid.Children.Add(tb2);

    }

это условие для вызова метода:

string select = this.MySimpleStringProperty;
        if (select == "konzole")
        {
            AddTb();
        }

Мой список:

public string MySimpleStringProperty { get; set; }
        public List<string> MyListProperty { get; set; } = new List<string>() { "konzole", "výrobce", "typ", "platforma", "barva", "edice", "site", "uložiště", "velikost_uložiště", "mechanika" };

Ответы [ 2 ]

1 голос
/ 24 мая 2019

Вам нужно удалить TextBoxes, когда вы больше не хотите их.

Вызов Grid.Children.Clear() удаляет всех детей.

1 голос
/ 24 мая 2019

Вы можете просто сохранить его в методе AddTb, если у вас есть список элементов, который вы можете сохранить список и проверить с помощью .Any()

  public void AddTb()
  { 
         if(MySimpleStringProperty != "konzole")
             return;
            TextBox tb2 = new TextBox();
            tb2.TextWrapping = TextWrapping.Wrap;
            tb2.Width = 60;
            tb2.Height = 23;
            tb2.Foreground = Brushes.White;
            tb2.Background = new SolidColorBrush(Color.FromArgb(0xFF, 0x36, 0x4d, 0x63));
            tb2.Margin = new Thickness(0, 0, 10, 229);
            Grid.Children.Add(tb2);

   }

На основе комментария

List<string> ProperString = new List<string>();//Global
ProperString.Add("konzole");
ProperString.Add("Other Stuff");

 if (!ProperString.Any(x => x == MySimpleStringProperty))
                    return;

U может использовать .Contains() также

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