Se ho un elemento derivato dal ItemsControl
, posso accedere ad una collezione di è bambini in modo che io possa ciclo attraverso di loro per eseguire determinate azioni? Non riesco a trovare alcun modo semplice al momento.Come accedere ai figli di un ItemsControl?
risposta
una soluzione simile a Seb di ma probabilmente con una migliore performance:
for(int i = 0; i < itemsControl.Items.Count; i++)
{
UIElement uiElement =
(UIElement)itemsControl.ItemContainerGenerator.ContainerFromIndex(i);
}
Sto assumendo ItemsControl.Items[index]
non funziona, allora?
non sto essere divertente, e non ho controllato per me stesso - che è solo la mia prima congettura. Molto spesso un controllo avrà una proprietà di indicizzatore di elementi, anche se è un database.
Questo doesn' t recuperare gli elementi "figlio" (controlli), solo gli elementi della lista, che non sono necessariamente controlli. –
No if, si utilizza un'origine dati e un modello dati, ad es. un carico di stringhe da utilizzare in un modello di dati, si ottiene la stringa restituita come elemento. –
Abbastanza giusto. Lascerò la mia risposta perché i tuoi commenti potrebbero essere utili. –
utilizzare la proprietà ItemsControl.Items
:
foreach (var item in itemsControl1.Items)
{
Console.WriteLine(item.ToString());
}
Per ripetere il mio commento, se si utilizza un'origine dati e un modello di dati, ad es. un carico di stringhe da utilizzare in un modello di dati, si ottiene la stringa restituita come l'elemento –
Bene, allora si dovrebbe andare con la soluzione di Seb – Oskar
vedere se questo ti aiuta:
foreach(var item in itemsControl.Items)
{
UIElement uiElement =
(UIElement)itemsControl.ItemContainerGenerator.ContainerFromItem(item);
}
C'è una differenza tra gli elementi logici in un controllo e di una UIElement
.
Per identificare ItemsControl
'controlli figlio databound s (come un ToggleButton
), è possibile utilizzare questo:
for (int i = 0; i < yourItemsControl.Items.Count; i++)
{
ContentPresenter c = (ContentPresenter)yourItemsControl.ItemContainerGenerator.ContainerFromItem(yourItemsControl.Items[i]);
ToggleButton tb = c.ContentTemplate.FindName("btnYourButtonName", c) as ToggleButton;
if (tb.IsChecked.Value)
{
//do stuff
}
}
- 1. Come accedere ai parametri nidificati
- 2. React.js: allegare evento dal genitore ai figli
- 3. Come accedere ai dati. L'esercizio di lavoro
- 4. Come accedere ai membri statici di Global.asax?
- 5. come accedere ai dati interni di jquery?
- 6. Virtualizzare un ItemsControl?
- 7. come accedere ai dati di un d3 SVG Element
- 8. Come accedere ai parametri di Sinatra usando un simbolo?
- 9. Come accedere ai dati netstat in Python?
- 10. Come accedere ai file su Heroku?
- 11. Come accedere ai dati POST in PHP?
- 12. Come utilizzare SharedAccessSignature per accedere ai BLOB
- 13. Come accedere ai binari predefiniti sqlite db?
- 14. come accedere ai valori dell'array protetto?
- 15. Come accedere ai metodi statici in TypeScript
- 16. Come accedere l'ambito madre ai un link direttiva
- 17. accedere ai membri privati di plugin jQuery
- 18. Come impostare un ulimit all'interno di uno script Perl che si applica ai suoi figli?
- 19. Come accedere alle proprietà dei figli di un ripetitore in QML?
- 20. Come cercare i figli di un HTMLDivElement?
- 21. Come accedere ai gruppi di contatti in VBA di Excel?
- 22. WrapPanel come ItemPanel per ItemsControl
- 23. Esiste un'API per accedere ai dati di un gruppo Google?
- 24. Come accedere ai problemi di GitLab utilizzando CURL?
- 25. Come posso accedere ai pixel di un'immagine usando opencv-python?
- 26. Come accedere ai file Lollipop DocumentFile di Android tramite NDK?
- 27. Come accedere ai fogli di lavoro in EPPlus?
- 28. Come accedere ai ganci di arresto con Log4j2?
- 29. Come accedere a livello di programmazione ai promemoria?
- 30. Come impedire a Maven di accedere ai repository remoti?
+1, grazie anche se semplice risolto il mio problema –
sembra se il controllo non ha reso/mostrato ancora, non avrà alcun oggetto. – Maslow