在我的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>
答案 0 :(得分:1)
在ItemTemplates中强烈建议不要使用事件,因为它打破了MVVM和DataTemplates的整体思路。 您应该将该Button绑定到将在ConditionList中的每个项目内实现的命令。
通过查看您的代码,我发现您正在尝试删除该项目。我不知道你的项目是如何实现的,但你应该通过viewmodel中的一个命令来实现。您可以将服务传递给每个项目,并让每个项目都自行删除,只需要一个......