How to draw a border around each element in ItemsControl?

933 Views Asked by At

I'm using an ItemsControl and a ItemTemplateSelector to draw display the UI of my items. But now, all my elements need to be inside in a Grid (and one of its columns the element should be there).

At the beginning I supposed was right to have a ContentControl nested in an ItemsControl, and this ContentControl should have the ItemTemplateSelector, but I'm not sure if this is the best way to do it.

2

There are 2 best solutions below

1
On BEST ANSWER

Stuff like that should be in the Template of the item container, for ItemsControls that is a bit problematic as the containers are ContentPresenters which have no Template. You could subclass ItemsControl to use a ContentControl, then use the ItemsControl.ItemContainerStyle to edit the Template of those containers.

1
On
<ItemsControl x:Name="lst">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
            <Border BorderThickness="10" CornerRadius="1" BorderBrush="Navy">
                    <TextBox Text="{Binding Name}"/>
            </Border>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

I hope this will help.