Подайте ListBox две части данных отдельно и используйте шаблон данных. Вот как.
Сначала создайте небольшой класс для представления каждого элемента, который вы хотите вставить:
public class WordPair {
public string First { get; set; }
public string Second { get; set; }
}
(Возможно, у вас уже есть подходящий класс и / или коллекция в вашем приложении - я предполагаю, что эти пары строк откуда-то идут!)
Во-вторых, установите ваш ListBox.ItemsSource для набора этих вещей:
listBox.ItemsSource = new List<WordPair> {
new WordPair { First = "ITEM A", Second = "ITEM B" },
new WordPair { First = "ITEM X", Second = "ITEM Y" },
};
Опять же, эта коллекция уже может существовать в вашем приложении.
В-третьих, создайте DataTemplate, указав желаемый макет, и назначьте его вашему ListBox.ItemTemplate:
<!-- in your Window.Resources section -->
<DataTemplate x:Key="AlignedPairs">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding First}" Grid.Column="0" />
<TextBlock Text="->" TextAlignment="Center" Grid.Column="1" />
<TextBlock Text="{Binding Second}" TextAlignment="Right" Grid.Column="2" />
</Grid>
</DataTemplate>
<ListBox Name="listBox" ItemTemplate="{StaticResource AlignedPairs}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
(Я угадал, какое именно выравнивание вы хотите для предметов, но вы, очевидно, можете настроить его.)
Обратите внимание, что вам также необходимо установить для параметра HorizontalContentAlignment объекта ListBoxItems значение Stretch, используя ListBox.ItemContainerStyle. В противном случае каждый ListBoxItem будет занимать только необходимое ему пространство, в результате чего все столбцы Grid будут иметь минимальный размер и выглядеть как прямая конкатенация. Функция Stretch заставляет каждый ListBoxItem заполнять всю ширину, поэтому столбцы Grid вынуждены соответственно увеличиваться.