문제

구성 요소가있는 경우 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] 그렇다면 작동하지 않습니까?

나는 재미 있지 않고 나 자신을 확인하지 않았다 - 그것은 단지 나의 첫 번째 추측이다. 대부분 컨트롤은 데이터가 데이터 라운드이더라도 인덱서 속성을 갖습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top