Более общий подход, чем предложенный Жюльеном Лебосквайном (и тот, который будет работать, когда список элементов содержит объекты более чем одного типа данных):
Создать DataTemplate
для использования при представлении элементатипа (типов) в вашем списке, например:
<DataTemplate DataType="local:Measure">
<local:MeasureUserControl DataContext="{Binding}"/>
</DataTemplate>
Используйте ItemsControl
для представления элементов:
<ItemsControl ItemsSource="{Binding MeasureList}"/>
Вы можете установить свойство ItemsPanel
дляItemsControl
- ItemsPanelTemplate
для управления тем, как он будет размещать пользовательские элементы управления, например:
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
Этот подход обычно предпочтительнее использования ListBox
, когда вам не нужны функцииListBox
, например, его границы по умолчанию и поведение выбора.