Itemscontrol의 어린이에게 어떻게 액세스합니까?
-
05-07-2019 - |
문제
구성 요소가있는 경우 ItemsControl
, 어린이들의 모음에 액세스하여 특정 행동을 수행하기 위해 반복 할 수 있습니까? 지금은 쉬운 방법을 찾을 수없는 것 같습니다.
해결책
SEB와 유사하지만 더 나은 성능을 가진 솔루션 :
for(int i = 0; i < itemsControl.Items.Count; i++)
{
UIElement uiElement =
(UIElement)itemsControl.ItemContainerGenerator.ContainerFromIndex(i);
}
다른 팁
이것이 도움이되는지 확인하십시오.
foreach(var item in itemsControl.Items)
{
UIElement uiElement =
(UIElement)itemsControl.ItemContainerGenerator.ContainerFromItem(item);
}
컨트롤의 논리 항목과 UIElement
.
확인하다 ItemsControl
의 데이터베이션 아동 컨트롤 (예 : a ToggleButton
), 당신은 이것을 사용할 수 있습니다 :
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
}
}
나는 가정하고있다 ItemsControl.Items[index]
그렇다면 작동하지 않습니까?
나는 재미 있지 않고 나 자신을 확인하지 않았다 - 그것은 단지 나의 첫 번째 추측이다. 대부분 컨트롤은 데이터가 데이터 라운드이더라도 인덱서 속성을 갖습니다.
제휴하지 않습니다 StackOverflow