listbox Item
がある場合、そのリストのindex
を取得するにはどうすればよいですか?私はdatabound
アプリケーションを持っていて、ユーザーが以前に保存したデータをリストしています。しかし、contextMenu
を使用してリスト内の特定のデータを削除したいと考えています。リストボックス内のアイテムのインデックスを取得する方法
コンテキストメニューを表示するために保持されているアイテムのリストインデックスを取得するにはどうすればよいですか?
listbox Item
がある場合、そのリストのindex
を取得するにはどうすればよいですか?私はdatabound
アプリケーションを持っていて、ユーザーが以前に保存したデータをリストしています。しかし、contextMenu
を使用してリスト内の特定のデータを削除したいと考えています。リストボックス内のアイテムのインデックスを取得する方法
コンテキストメニューを表示するために保持されているアイテムのリストインデックスを取得するにはどうすればよいですか?
コントロールのSelectedIndex property(MSDN)にアクセスしてみませんか?
ただし、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>
です。しかし、私はその項目もユーザーの内部ストレージから削除し、正確な項目を取得する必要があります、私は配列内のインデックス番号が必要です。この方法で画面上のアイテムを削除しても、ローカルストレージに影響するとは思わない。 – deztructicus
アイテムをデータバインドすると、CommandParameterとして正確なアイテムが取得されます。その後、隔離されたストレージとビューにアイテムを表示するObservableCollectionの両方から削除できます。インデックス番号はあなたを助けません。 –
ああありがとう。どの機能を使用して削除しますか?私は使用しています ListBoxItem selectedListBoxItem = this.MainListBox.ItemContainerGenerator.ContainerFromItem((送信者とMenuItem).DataContext)をListBoxItemとして使用しています。 アイテムを選択するには、ObservableCollectionからアイテムを削除する方法はありますか? – deztructicus