5
Ho un ListBox. Ora voglio scrivere un DataTemplate in modo tale che l'elemento primo abbia sfondo rosso e sfondo bianco per altri elementi. Suppongo di dover scrivere un DataTrigger, ma non ho idea di come determinare che DataTemplate si stia applicando al primo elemento.Come determinare l'indice dell'elemento ListBox corrente da DataTemplate?
È una funzionalità eccezionale, grazie per informazioni. Ma ho bisogno del ** solo ** primo elemento per avere lo sfondo rosso, non ogni articolo dove (itemIndex% AlternationCount) == 0. Naturalmente, posso associare AlternationCount a ItemsSource.Count, ma non c'è un modo migliore di fare Questo? – levanovd
ciò che si profila è accettabile, è tutto in xaml. fa il lavoro e puoi passare a cose migliori. qualcun altro potrebbe venire con una soluzione più elegante. Si potrebbe eseguire una multibinding con il primo binding al componente corrente e il secondo un ancestor binding, che si lega alla fontesource della casella di elenco. quindi nel tuo convertitore puoi controllare quale fosse l'indice dell'articolo. ma la tua soluzione sopra è tutto in xaml. Io preferisco sempre la leggibilità. è in bella vista nel xaml, non bloccato in un convertitore –
Non c'è bisogno di associare AlternationCount a ItemsSource.Count: basta impostarlo su Int32.MaxValue in XAML. (Preferisco AlternationCount = "2147483647" sull'uso di "{x: Static sys: Int32.Maxvalue}", poiché è più veloce e 2^31-1 è riconoscibile per la maggior parte dei programmatori). –