0

そのため、ユーザーがリストボックスの項目をタップ アンド ホールドしたときに表示されるコンテキスト メニューがあります。タップされたアイテムから値を取得するためのこのコードがあります。

ListBoxItem contextMenuListItem = (ListBoxItem)(myListBox.ItemContainerGenerator.ContainerFromItem(((MenuItem)sender).DataContext));


string item = (contextMenuListItem).Content.ToString();

しかし、変数「item」には、タップされたアイテムの値が含まれるようになりました。アイテムからインデックスを取得したい。出来ますか?はいの場合、どのように?

Silverlight のツールキットのコンテキスト メニューを使用しています。

4

2 に答える 2

1

でリストからアイテムを削除しようとしているのはなぜToStringですか? を使用し、それを ListBox にバインドし、 で使用します。プレーンな文字列のリストをバインドすることは、悪い悪い考えです。ObservableCollection<ModelItem>Remove((MenuItem)sender).DataContext

さらに良いのは、Shawn Kendrot の提案を取り入れて、MVVM の方法で物事を行うことです。確かに今は複雑に思えるかもしれませが、ちょっとした作業で頭を包み込むのはとても簡単です。私はそれについて、プログラミングをしていない人間を教育することができました。コーディングできる場合は、MVVM モデルの操作方法を学習できるはずです。

于 2013-01-28T03:27:32.097 に答える
1

私の最初の Windows Phone アプリ (昨年) では、私はあなたのようなことを行い、Shawn Kendrot が提案したような MVVM を使用しました。

私のコードは GitHub にあります。特別なアプリケーション/コードでなくても、お気軽にご覧ください。

https://github.com/fabmoll/SimpleTodo

于 2013-01-27T12:59:28.133 に答える