Привязка возможна только к свойствам, не к полям. Поэтому для начала вам нужно изменить класс "Исполнитель", введя поля:
C#Выделить код |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 |
public class Artist
{
private readonly string name;
private readonly string path;
public Artist(string name, string path)
{
this.name = name;
this.path = path;
}
public string Name
{
get { return name; }
}
public string Path
{
get { return path; }
}
} | |
|
Затем нужно задать шаблон для отображения ListBoxItem'ов. По этому шаблону на каждый объект класса Artist будет автоматически создаваться ListBoxItem в виде TextBlock'a и его свойство Text будет привязано к Name:
XMLВыделить код |
1
2
3
4
5
6
7 |
<ListBox Name="listBox">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox> | |
|
И наконец нужно указать ListBox'у из какой коллекции брать данные. Причем если вы хотите чтобы он смог автоматически отслеживать добавление/удаление элементов из этой коллекции, то лучше использовать ObservableCollection:
C#Выделить код |
1
2
3
4
5
6
7
8 |
var artists = new ObservableCollection<Artist>
{
new Artist("aaa", "111"),
new Artist("bbb", "222"),
new Artist("ccc", "333")
};
listBox.ItemsSource = artists; | |
|