Если список данных создается в коде, то вам придется связать его в коде, например так:
eventList.ItemsSource = ListOfNames;
Теперь привязка к списку строк - очень простой пример. Давайте возьмем более сложный.
Скажем, у вас есть класс:
public class Person {
public string FirstName { get; set; }
public string Surname { get; set; }
}
Чтобы отобразить список людей, вы можете привязать список к ListBox, но в итоге вы получите список, который отображает «Person» для каждой записи, потому что вы не сказали WPF, как отображать объект person.
Чтобы сообщить WPF, как визуально отображать объекты данных, мы определяем шаблон данных следующим образом:
<Window.Resources>
<DataTemplate DataType="{x:Type l:Person}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding FirstName}"/>
<TextBlock Text=" "/>
<TextBlock Text="{Binding Surname}"/>
</StackPanel>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox Name="listBox" />
</Grid>
public Window1() {
InitializeComponent();
List<Person> people = new List<Person>();
people.Add(new Person() { FirstName = "Cameron", Surname = "MacFarland" });
people.Add(new Person() { FirstName = "Bea", Surname = "Stollnitz" });
people.Add(new Person() { FirstName = "Jason", Surname = "Miesionczek" });
listBox.ItemsSource = people;
}
Это будет приятно отображать «Имя, Фамилия» в списке.
Если вы хотите изменить внешний вид, говоря « Фамилия , Имя», все, что вам нужно сделать, это изменить XAML на:
<StackPanel Orientation="Horizontal">
<TextBlock FontWeight="Bold" Text="{Binding Surname}"/>
<TextBlock Text=", "/>
<TextBlock Text="{Binding FirstName}"/>
</StackPanel>