/ / ItemsControlで選択したアイテムのインデックス - wpf、xaml

ItemsControlで選択したアイテムのインデックス - wpf、xaml

私のxamlには内部的にいくつかのコントロール、例えば、wrappanelとButtonsがある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>

回答:

回答№1は2

イベントを使用することはお勧めできませんItemTemplatesはMVVMとDataTemplatesのアイデアを壊してしまいます。 ConditionList内の各項目内に実装されるコマンドにそのボタンをバインドする必要があります。

あなたのコードを見て、私はあなたが試みているのを見るアイテムを削除します。私はあなたのアイテムがどのように実装されているのか知りませんが、あなたはviewmodel内のコマンドを使ってそれを行うべきです。あなたはそれぞれのアイテムにサービスを渡すことができ、それぞれが削除されることを要求することができます。