Как получить и удалить элемент управления в позиции из сетки

Я добавляю элемент управления во время выполнения в Grid используя следующий код:

void AddControl(UserControl oControl)
{
    grid.Children.Add(oControl);
    oControl.SetValue(Grid.RowProperty, 1);
    oControl.SetValue(Grid.ColumnProperty, 0);
}

Я хочу удалить элемент управления в той же позиции (строка = 1, столбец = 0). Я не сохраняю ссылку на элемент управления, добавленный ранее. Как получить и удалить элемент управления в позиции (строка = 1 и столбец = 0) из Grid?

1 ответ

У меня есть два пользовательских элемента управления, которые имеют некоторые функции в них. В главном окне у меня есть две кнопки. По нажатию первой я устанавливаю UserControl1 во второй строке, а по нажатию второй я устанавливаю UserControl2 в той же позиции

То, что вам нужно для достижения этой цели, TabControl:

    <TabControl>
        <TabItem Header="Tab 1">
            <Grid Background="Gray">
                <TextBlock Text="Here goes UserControl 1"
                           VerticalAlignment="Center" HorizontalAlignment="Center"/>
            </Grid>
        </TabItem>

        <TabItem Header="Tab 2">
            <Grid Background="Gray">
                <TextBlock Text="Here goes UserControl 2"
                           VerticalAlignment="Center" HorizontalAlignment="Center"/>
            </Grid>
        </TabItem>
    </TabControl>

Результат:

введите описание изображения здесь

Почему добавление элементов управления в коде не очень хорошо?

Потому что это создает хаос ремонтопригодности. Элементы пользовательского интерфейса должны быть определены в XAML. Вот для чего XAML. Создание элементов пользовательского интерфейса в коде позади - это не только больше кода, оно подвержено ошибкам и полностью устраняет разделение пользовательского интерфейса и кода, которое допускает XAML.

Что если мне нужно динамически создать пользовательский интерфейс?

Тогда вы должны использовать DataTemplates определено в XAML. Опционально используя DataTriggers изменить состояние элементов пользовательского интерфейса на основе определенных свойств в Model / ViewModel

Идея WPF о "динамичности" действительно сильно отличается от традиционных структур пользовательского интерфейса.

Другие вопросы по тегам