我在主页的Loaded事件中创建了一个List,其中包含了我的类的一些对象" Regioni"和#34; Musei"
然后我在ListView中添加了这些项目,并且SelectedItem事件恢复了所选对象并将其带入了新页面
private void Page_Loaded(object sender, RoutedEventArgs e)
{
reg.Add(
new Regioni
{
NomeRegione = "Toscana",
NomeProvincia = "Firenze"
});
reg.Add(
new Regioni
{
NomeRegione = "Toscana",
NomeProvincia = "Prato"
});
var gruppi = reg.OrderBy(x => x.NomeRegione).GroupBy(x => x.NomeRegione);
Museum.Source = gruppi;
mus.Add(
new Musei
{
NomeMuseo = "Galleria degli Uffizi",
Paese = "Firenze",
NumeroTel = "055294883",
IndirizzoEmail = "mbac-sspsae-fi@beniculturali.it",
PrezzoBiglietto = "8 € Intero, 4€ Ridotto\r\nGratuito inferiore 18 anni",
Apertura = "Da martedì a domenica,\r\nore 8,15-18,50 Chiusura: Lunedi,Capodanno,Natale,1° Maggio.",
IndirizzoWeb = "http://uffizi.firenze.it/",
Immagine="Assets/Immagini/galleria-uffizi1.jpg",
});
}
private async void ListView_ItemClick_TuttiMusei(object sender, ItemClickEventArgs e)
{
var NuovoMuseo = (Musei)e.ClickedItem;
this.Frame.Navigate(typeof(DettaglioMuseo), NuovoMuseo);
}
为什么当我将对象插入新页面" DettaglioMuseo",并返回主页面时,在ListView中我发现两次相同的项目?
答案 0 :(得分:2)
这是因为Loaded
- 事件再次触发并再次添加项目。
因此,在添加Regioni
之前,您应检查private void Page_Loaded(object sender, RoutedEventArgs e)
{
AddIfNotExists("Toscana", "Firenze");
AddIfNotExists("Toscana", "Prato");
var gruppi = ...
...
}
private void AddIfNotExists(string regione, string provincia)
{
if (!reg.Any(r => r.NomeProvincia == regione && r.NomeProvincia == provincia))
{
reg.Add(new Regioni { NomeRegione = regione, NomeProvincia = provincia });
}
}
是否已存在:
{{1}}