Я пытаюсь создать свой собственный медиаплеер для Windows Phone 7 и для первого шага, я хочу отобразить список всех песен в своей медиа-библиотеке, чтобы выбрать их. Как я понял ListBox, я просто назвать texblocks как атрибуты моего класса, которые были бы «Песня»Добавление списка песен в ListBox
<ListBox FontSize="30" Name="songListGUI" Height="330" Margin="0,120,0,0">
<Button Width="430" Height="60" BorderThickness="0" Margin="0" >
<Button.Content>
<StackPanel Orientation="Horizontal" Width="420" Height="auto">
<TextBlock Name="Name" Text="{Binding Name}" FontSize="22"></TextBlock>
<TextBlock Text=" - " FontSize="22"></TextBlock>
<TextBlock Name="Artist" Text="{Binding Artist}" FontSize="22"></TextBlock>
</StackPanel>
</Button.Content>
</Button>
</ListBox>
И теперь я думаю, я должен обрабатывать мой список песен для графического интерфейса и я пытаюсь сделать это с помощью:
songListGUI.ItemsSource = songs;
Но тогда я получаю «InvalidOperationException» - коллекция предметов должна быть пустой перед использованием ItemsSource. Я нашел несколько таких проблем, и все они создали новый класс, чтобы отобразить этот контент. Но я хотел бы придерживаться класса песни, так как это очень удобно:/ Знаете ли вы, что я делаю неправильно здесь?
Редактировать: Я только что нашел решение. Не знаю, почему именно, но это изменение в .xaml сделал мой да :):
<ListBox FontSize="30" Name="songListGUI" Height="330" Margin="0,120,0,0">
<ListBox.ItemTemplate>
<DataTemplate>
<Button Width="430" Height="60" BorderThickness="0" Margin="0" >
<Button.Content>
<StackPanel Orientation="Horizontal" Width="420" Height="auto">
<TextBlock Name="Name" Text="{Binding Name}" FontSize="22"></TextBlock>
<TextBlock Text=" - " FontSize="22"></TextBlock>
<TextBlock Name="Artist" Text="{Binding Artist}" FontSize="22"></TextBlock>
</StackPanel>
</Button.Content>
</Button>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Любой мог explan это мне?