ItemsControl中所选项目的索引

时间:2015-01-26 10:27:10

标签: wpf xaml

在我的xaml中,我有一个ItemsControl,它内部有一些控件,例如wrappanel和Buttons。当用户点击按钮时,我怎么知道它的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>

1 个答案:

答案 0 :(得分:1)

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

通过查看您的代码,我发现您正在尝试删除该项目。我不知道你的项目是如何实现的,但你应该通过viewmodel中的一个命令来实现。您可以将服务传递给每个项目,并让每个项目都自行删除,只需要一个......