嘿,我正在用Silverlight編寫windows phone應用程序,並且我試圖動態更新我已有的DataTemplate的源代碼。下面是我有XAML:動態更新DataTemplate的源代碼
<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#,我通過數據一起,像這樣的主要初始化函數:
list.Add(new NoteToSelf { Transcription = "oh hi", Duration = "9001 seconds" });
list.Add(new NoteToSelf { Transcription = "fgsfds", Duration = "$Texas seconds" });
listBox1.ItemsSource = list;
如果列表是一個List集合。所有這些都很好 - 硬編碼數據在屏幕上按預期顯示。但是,當我嘗試動態更新信息時,它默默地失敗。如果我綁定的動作來運行該代碼按鈕:
list.Add(new NoteToSelf { Transcription = "FFUUUUUUUU", Duration = "LISTBOX, Y U NO UPDATE?" });
listBox1.ItemsSource = list;
我希望它的新元素添加到集合,重新分配來源爲DataTemplate中,然後更新爲新數據的畫面。但是,情況並非如此。我會如何去做這件事?
顯然,這是POC代碼,只是一種手段,我只是想獲得元素動態更新。另外,如果有更好的方法從模板動態添加屏幕上的元素,那麼我可能會以錯誤的方式處理這個問題,這對聽到它們非常有幫助。
謝謝大家。
你是男性中的半神人。古代文明在預言你的智慧時建造了雕像。你屬於Neil Bohr旁邊的照片:http://en.wikipedia.org/wiki/Solvay_Conference#Fifth_conference。 「爲何你偏偏是羅密歐?」並不是羅密歐對蒙塔古斯忠誠的問題,而是朱麗葉渴望羅米歐像你一樣有幫助,聰明和英俊的渴望。謝謝里奇梅爾頓。 – jjcm 2011-05-10 18:57:48