Привет всем, я пишу приложение для Windows Phone в Silverlight, и я пытаюсь динамически обновлять источник DataTemplate, который у меня есть. Вот что у меня есть xaml:
<ListBox Grid.Row="1" Height="607" HorizontalAlignment="Left" Name="listBox1" VerticalAlignment="Top" Width="480">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Height="132">
<StackPanel Width="370">
<TextBlock Text="{Binding Transcription}" Foreground="#FFC8AB14" FontSize="28" />
<TextBlock Text="{Binding Duration}" TextWrapping="Wrap" FontSize="24" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
В C # за этим я передаю данные в основной функции init следующим образом:
list.Add(new NoteToSelf { Transcription = "oh hi", Duration = "9001 seconds" });
list.Add(new NoteToSelf { Transcription = "fgsfds", Duration = "$Texas seconds" });
listBox1.ItemsSource = list;
Где список - это коллекция списков. Все это прекрасно работает - жестко закодированные данные отображаются на экране, как и ожидалось. Однако, когда я пытаюсь динамически обновить информацию, она молча терпит неудачу. Если я связываю действие с кнопкой, которая выполняет этот код:
list.Add(new NoteToSelf { Transcription = "FFUUUUUUUU", Duration = "LISTBOX, Y U NO UPDATE?" });
listBox1.ItemsSource = list;
Я ожидаю, что он добавит новый элемент в коллекцию, переназначит источник для DataTemplate, а затем обновит экран новыми данными. Это, однако, не тот случай. Как мне это сделать?
Очевидно, что это код POC, который является просто средством для достижения цели, я просто хочу получить элементы для динамического обновления в данный момент. Кроме того, я вполне могу подойти к этому неправильно, если есть лучший способ динамически добавлять элементы на экран из шаблона, было бы очень полезно услышать их.
Спасибо всем.