Как я могу получить доступ к братьям и сестрам из Item внутри ItemsControl? - PullRequest
0 голосов
/ 21 июля 2010

У меня есть 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 Ответ

0 голосов
/ 22 июля 2010

Я отвечу сам, так как мне помогли в компании.

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

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

Надеюсь, это поможет кому-то еще.

...