Show items in an itemscontrol in two columns (WPF)
Use a ListBox and specify a DataTemplate in which you put both the TextBlock and TextBox. Use bindings to populate them both. See http://msdn.microsoft.com/en-us/library/ms742521.aspx for more examples.
<ListBox x:Name="TheListBox" Grid.IsSharedSizeScope="True">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Key" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" />
<TextBox Grid.Column="1" Text="{Binding Value }" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
TheListBox.ItemsSource = CollectionOfObjects;
I tend to put the items in WrapPanel, and then set the width of the panel to be 2x the item width. That gives me nice columns with an arbitrary number of elements. If your item widths differ, I put each item in its own Grid or StackPanel of fixed width.