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