ItemsControl 中所选项目的索引

Index of selected item in ItemsControl

在我的 xaml 中,我有一个 ItemControl,它内部在顶部有一些控件,例如包装面板和按钮。当用户点击按钮时,如何知道它的itemindex?

<ItemsControl ItemsSource="{Binding ConditionList}" AlternationCount="{Binding ConditionList.Count}">
    <ItemsControl.ItemTemplate>
       <DataTemplate>
          <WrapPanel Background="#FFB1CBCB">
            <ComboBox ItemsSource="{Binding DataContext.NodeMembershipFunction, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}, AncestorLevel=1}}" DisplayMemberPath="_Name" SelectedValue="{Binding Condition, Mode=TwoWay}" SelectedValuePath="_Type"></ComboBox>
            <Button Content="Remove" Click="Remove_Click" />
          </WrapPanel>
        </DataTemplate>
     </ItemsControl.ItemTemplate>
  </ItemsControl>

强烈不建议在 ItemTemplates 中使用事件,因为它破坏了 MVVM 和 DataTemplates 的整体理念。 您应该将该按钮绑定到将在 ConditionList 中的每个项目内实现的命令。

通过查看您的代码,我发现您正试图删除该项目。我不知道你的项目是如何实现的,但你应该通过视图模型中的命令来实现。您可以将服务传递给每个项目,并让每个项目请求自己删除,只是...