代码之家  ›  专栏  ›  技术社区  ›  JeroenEijkhof

如何从ItemsControl中的项访问同级项?

  •  0
  • JeroenEijkhof  · 技术社区  · 16 年前

    我有一个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>
    

    IEnumerable<ListObj> 使用LINQ,然后连接到 TopicList.ItemsSource . 如您所见,列表中唯一的元素是我自己调用的UseControl TopicListItem . 我希望能够访问ItemsControl从 TopicListItem.xaml.cs 文件,以便当我单击其中一个执行打开操作时,可以关闭其余的。

    1 回复  |  直到 16 年前
        1
  •  0
  •   JeroenEijkhof    16 年前

    我会自己回答的,因为我在公司里得到了一些帮助。

    我这样做的方法是简单地访问ItemsControl元素并从 Items

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

    我希望这对其他人有帮助。