Не работает свойство Children.Clear() C# WPF

122
28 ноября 2021, 15:20

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

public partial class MainWindow : Window
{
    public void Clear()
    {
        ClearChildControl();
    }
    public MainWindow()
    {
        InitializeComponent();
        Generate generate = new Generate();
        MainGrid.Children.Add(generate.Btn());
    }
    public void ClearChildControl()
    {
        MainGrid.Children.Clear();
        MessageBox.Show("Clear");
    }
}
public class Generate
{
    public Button button = new Button();
    public Button Btn()
    {
        button.Content = "Я кнопка";
        button.Padding = new Thickness(5);
        button.VerticalAlignment = VerticalAlignment.Center;
        button.HorizontalAlignment = HorizontalAlignment.Center;
        button.Click += (s, e) =>
        {
            MainWindow mainWindow = new MainWindow();
            mainWindow.ClearChildControl();
        };
        return button;
    }
}
READ ALSO
Как открыть .cs файл как Windows Form Constructor (Visual Studio c#) 2019

Как открыть .cs файл как Windows Form Constructor (Visual Studio c#) 2019

Я создал пустой проект windows formsВ гайдах написано что вместе с файлом открывается и Windows Form constructor

193
Вставка Razor-кода из JavaScript в html-разметку

Вставка Razor-кода из JavaScript в html-разметку

Столкнулся с неожиданной проблемойУ меня есть форма, на которой по нажатию кнопки добавляется select-поле

105
Как установить sharpGL для VisualStudio 2019 C#

Как установить sharpGL для VisualStudio 2019 C#

Я пытаюсь установить расширение sharpGL для visual stuioПишет что невозможно установить расширение не для одного пакета

100