Как я могу получить доступ к братьям и сестрам из Item внутри ItemsControl?

У меня есть ItemsControl:

<StackPanel>
    <ItemsControl x:Name="TopicList">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <local:TopicListItem Title="{Binding Title}" LocationCloud="{Binding Locations}" TagCloudData="{Binding TagCloudData}" SparklineData="{Binding SparklineData}"/>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</StackPanel>

Затем я получаю XML и превращаю его в IEnumerable<ListObj> используя LINQ, который затем присоединяется к TopicList.ItemsSource, Как вы видите, единственный элемент в списке - это UseControl, который я сам назвал TopicListItem, Я хочу иметь возможность получить доступ к индексу элементов, который имеет ItemsControl из TopicListItem.xaml.cs файл, так что, когда я нажимаю на один из них, чтобы выполнить открытое действие, я могу закрыть остальные.

Спасибо за помощь:)

(и я попробовал Accordion и AccordionItems, на мой вкус:D)

1 ответ

Я отвечу на это сам, так как я получил некоторую помощь в компании.

Я сделал так, чтобы просто получить доступ к элементу ItemsControl и получить коллекцию из Items имущество.

MainPage root = Application.Current.RootVisual as MainPage;
foreach(MyClass c in root.TopicList.Items) 
{
    // loop through them all and close/open conditionally
}

Я надеюсь, что это поможет кому-либо еще.

Другие вопросы по тегам