C# 如何从ItemsControl中的项访问同级?
我有一个ItemsControl:C# 如何从ItemsControl中的项访问同级?,c#,silverlight,silverlight-4.0,itemscontrol,C#,Silverlight,Silverlight 4.0,Itemscontrol,我有一个ItemsControl: <StackPanel> <ItemsControl x:Name="TopicList"> <ItemsControl.ItemTemplate> <DataTemplate> <local:TopicListItem Title="{Binding Title}" LocationCloud="{Binding Locati
<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
,然后将其附加到TopicList.ItemsSource
。如您所见,列表中唯一的元素是一个UseControl,我自己将其命名为TopicListItem
。我希望能够从TopicListItem.xaml.cs
文件中访问ItemsControl拥有的项目索引,以便在单击其中一个项目以执行打开操作时,可以关闭其余项目
谢谢你的帮助:)
(我试过手风琴和手风琴项目,对我的口味来说很僵硬:D)我会自己回答,因为我在公司里得到了一些帮助 我这样做的方式是简单地访问ItemsControl元素并从
Items
属性获取集合
MainPage root = Application.Current.RootVisual as MainPage;
foreach(MyClass c in root.TopicList.Items)
{
// loop through them all and close/open conditionally
}
我希望这对其他人有帮助