Как получить индекс элемента в списке - PullRequest
2 голосов
/ 19 декабря 2011

Если у меня есть listbox Item, как мне получить его index в списке? У меня есть приложение databound, в котором перечислены данные, ранее сохраненные пользователем. Однако я хочу иметь возможность удалять определенные данные в списке, используя contextMenu.

Итак, как мне получить индекс списка элемента, который удерживался для вызова контекстного меню?

Ответы [ 2 ]

5 голосов
/ 19 декабря 2011

Почему бы не получить доступ к свойству SelectedIndex (MSDN) элемента управления?

1 голос
/ 19 декабря 2011

Однако я хочу иметь возможность удалять определенные данные в списке с помощью ContextMenu.

Вы можете привязать элемент непосредственно к ContextMenu как CommandParameterдля вашей команды удаления.Это гораздо лучший подход к проблеме.

<ListBox ItemsSource="{Binding UserItems}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <!-- Attach the ContextMenu to the top container in your ItemTemplate. -->
                <toolkit:ContextMenuService.ContextMenu>
                    <toolkit:ContextMenu>
                        <!-- Here we bind the current item to the RemoveCommand -->
                        <toolkit:MenuItem Command="{Binding RemoveCommand}"
                                          CommandParameter="{Binding}"
                                          Header="remove item" />
                    </toolkit:ContextMenu>
                </toolkit:ContextMenuService.ContextMenu>
                <!-- The actual DataTemplate -->
                <TextBlock Text="{Binding SomeValue}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...