我有一个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并使用LINQ将其转换为IEnumerable<ListObj>
,然后将其附加到TopicList.ItemsSource
。如您所见,列表中唯一的元素是UseControl,我自称为TopicListItem
。我希望能够从TopicListItem.xaml.cs
文件访问ItemsControl具有的项目索引,以便当我单击其中一个来执行打开操作时,我可以关闭其余部分。
感谢您的帮助:)
(我尝试过Accordion和AccordionItems,为我的口味加油:D)
答案 0 :(得分:0)
自从我在公司内部得到一些帮助后,我会自己回答。
我这样做的方法是简单地访问ItemsControl元素并从Items
属性中获取集合。
MainPage root = Application.Current.RootVisual as MainPage;
foreach(MyClass c in root.TopicList.Items)
{
// loop through them all and close/open conditionally
}
我希望这有助于其他任何人。