у меня возник нюанс мне нужно чтобы при добавлении элемента кнопка сдвигалась.

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

То есть при нажатии нужно чтобы элемент добавляться а кнопка сдвигалась если нет элементов будет видна только кнопка.
Мой код XAML:
<StackPanel >
<TextBlock Text="Filter Files" HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="White" FontSize="20"
/>
<ItemsControl ItemsSource="{Binding Filters,UpdateSourceTrigger=PropertyChanged}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border CornerRadius="3" BorderBrush="White" BorderThickness="2" Margin="2">
<Grid Margin="5">
<TextBlock Width="50" Height="20" Foreground="White"
Text="{Binding Name}"/>
<Border
Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}"
HorizontalAlignment="Right"
VerticalAlignment="Top"
Background="#FFFF2020"
CornerRadius="3">
<Border.InputBindings>
<MouseBinding
Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}, Path=DataContext.RemoveFilterCommand}"
CommandParameter="{Binding}"
Gesture="LeftClick" />
</Border.InputBindings>
<TextBlock
Margin="1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="White"
Text="" />
<!--Style="{StaticResource BaseText}"-->
</Border>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Button Width="50" Height="20" Content="Add Item" Command="{Binding}"/>
</StackPanel>
Подскажите такое возможно реализовать ?
Text, которое будет отвечать за текст кнопки, также свойствоICommandдля самой команды закрытия. Имея интерфейс, сделайте 2 класса: 1. Для самих этих расширений. 2. Для типа кнопки. После, сделайте коллекцию этих интерфейсов, добавляя туда нужные элементы, а последним кнопку. В XAML, черезDataContextзадайте вид для двух классов, где классу кнопки делаете вид, естественно, последней кнопки, а классу расширений текущий вид объектов. Таким образом, кнопка у вас будет как часть коллекции. – EvgeniyZ Jul 23 '22 at 22:48List<IShape>добавлю объекты с разной реализацией интерфейсов – Vladimir Jul 29 '22 at 14:11list.Add(new Circle());,list.Add(new Square());. Коллекцияlist- этоList<IShape>(коллекция интерфейсов), аCircleиSquareэто реализующие интерфейс классы (public class Square : IShape { ... }). – EvgeniyZ Jul 29 '22 at 17:11Square : IShapeаCircle:IFigureкак мне быть? – Vladimir Jul 29 '22 at 18:21Square : IShape,Circle : IShape, IFigure. – EvgeniyZ Jul 29 '22 at 18:25