曾與一個ListBoxItem內發送一個奇怪的情況(我只是認爲這發件人是不爭氣,但不知道...)WP7列表框元素,點擊「發送」對象的唯一性
有的ItemTemplate的列表框:
<ListBox x:Name="list">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="stack_panel">
<Image Source="{Binding ImageSource}" Tap="Image_Tap"></Image>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
的ListBox中的每一個項目都有一個有些像用自來水事件:
private void Image_Tap(object sender, GestureEventArgs e)
{
Image i = (Image)sender;
i.Source = new BitmapImage(new Uri("Images/yellow.png", UriKind.RelativeOrAbsolute));
}
此外,還有方便的圖像改變類:
public class listItems
{
public string ImageSource { get; set; }
}
權。現在,我準備在列表框中添加一些元素:
for (int i = 0; i < 100;i++)
list.Items.Add(new listItems
{
ImageSource = "Images/black.png"
});
所以,讓我們點擊零的太陽圖像:
一切OK!讓我們繼續,並點擊第二個畫面:
權,太陽shining..but ..停止,那是什麼? 0_o
我沒有點擊這個項目,但這一形象已經改變了!這不僅發生在第th項上,它也與其他一些隨機項(53,81,...)相關聯
您對此有何看法?發件人是否可以引用許多元素?
我認爲這個問題可能是i.Source的設置,而不是直接更新綁定的對象的屬性的ImageSource。這是重寫綁定。我相信列表框默認使用虛擬化堆疊面板,所以黃色的太陽正在被回收。您可能還需要listItems類來實現INotifyPropertyChanged。 –
而不是刪除評論我會承認我錯了。我有機會測試我的理論,這似乎不是問題。 –