Как насчет того, чтобы испытать некоторый профильный инструмент как Бесплатное программное обеспечение JProbe (плагин Eclipse).
Я обычно помещаю элементы в WrapPanel, а затем устанавливаю ширину панели в 2 раза больше ширины элемента. Это дает мне красивые столбцы с произвольным количеством элементов. Если ширина ваших элементов различается, я помещаю каждый элемент в отдельную сетку или StackPanel фиксированной ширины.
Используйте ListBox и укажите DataTemplate, в который вы помещаете и TextBlock, и TextBox. Используйте привязки, чтобы заполнить их оба. См. http://msdn.microsoft.com/en-us/library/ms742521.aspx для получения дополнительных примеров.
<ListBox x:Name="TheListBox">
<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;