2010-07-21 24 views
0

我有一个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并把它转换成使用LINQ,然后将其连接到TopicList.ItemsSourceIEnumerable<ListObj>。正如你看到列表中唯一的元素是一个UseControl,我自己称为TopicListItem。我希望能够从TopicListItem.xaml.cs文件中访问ItemsControl所具有的项目的索引,以便当我点击其中一个项目执行打开操作时,我可以关闭其余项目。

感谢您的帮助:)

(我曾尝试手风琴和AccordionItems,僵硬对我的口味:d)

回答

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 
} 

我希望这可以帮助其他人。

相关问题