Проверьте, существует ли TextBox в C # WPF - PullRequest
0 голосов
/ 10 декабря 2018

Я хотел бы проверить, существует ли TextBox, созданный ранее в коде.Это TextBox создано в «если тест», поэтому я хочу проверить, существует ли он.Но я не знаю, как я могу проверить, существует ли оно, потому что я не могу назвать имя TextBox, потому что оно не существует ..

private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (((ComboBoxItem)typeproduit.SelectedItem).Content.ToString() == "Isolant")
            {
                TextBox EpIsolant = new TextBox
                {
                    Width = 100,
                    Height = 29,
                    HorizontalAlignment = HorizontalAlignment.Left,
                    VerticalAlignment = VerticalAlignment.Top,
                    Margin = new Thickness(209, 294, 0, 0)
                };
                MyPage.Children.Add(EpIsolant);

                Label EpIsolantLabel = new Label
                {
                    Content = "Ep isolant (mm)",
                    Width = 100,
                    Height = 29,
                    HorizontalAlignment = HorizontalAlignment.Left,
                    VerticalAlignment = VerticalAlignment.Top,
                    Margin = new Thickness(209, 260, 0, 0)
                };
                MyPage.Children.Add(EpIsolantLabel);
            }
            else 
            {
                // I want to test it here
                // And if it exists, I want to remove it from MyPage.Children
            }
        }

Спасибо за помощь!Я не смог найти никакой помощи с Google

PS: Когда я пытаюсь изменить видимость, он все еще не работает:

private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            TextBox EpIsolant = new TextBox
            {
                Width = 100,
                Height = 29,
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment = VerticalAlignment.Top,
                Margin = new Thickness(209, 294, 0, 0)
            };
            MyPage.Children.Add(EpIsolant);

            Label EpIsolantLabel = new Label
            {
                Content = "Ep isolant (mm)",
                Width = 100,
                Height = 29,
                HorizontalAlignment = HorizontalAlignment.Left,
                VerticalAlignment = VerticalAlignment.Top,
                Margin = new Thickness(209, 260, 0, 0)
            };
            MyPage.Children.Add(EpIsolantLabel);
            EpIsolant.Visibility = Visibility.Hidden;
            EpIsolantLabel.Visibility = Visibility.Hidden;

            if (((ComboBoxItem)typeproduit.SelectedItem).Content.ToString() == "Isolant")
            {
                EpIsolant.Visibility = Visibility.Visible;
                EpIsolantLabel.Visibility = Visibility.Visible;
            }
            else
            {
                EpIsolant.Visibility = Visibility.Hidden;
                EpIsolantLabel.Visibility = Visibility.Hidden;
            }
        }

1 Ответ

0 голосов
/ 10 декабря 2018

Как уже говорилось, вы можете подумать о таких изменениях Visibility или IsEnabled свойства Button, чтобы скрыть / отключить его.

Но если вы хотите придерживаться своего решения, вы могли бы вынуть переменную вне метода:

private TextBox _epIsolant;

Затем вы можете назначить ей объект:

_epIsolant = new TextBox
{
    Width = 100,
    Height = 29,
    HorizontalAlignment = HorizontalAlignment.Left,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Thickness(209, 294, 0, 0)
};

, и вы также можете проверить, была ли она создана внутри вашегоМетод:

if(_epIsolant == null)
{
  ...
}
...