所以我有一个上下文菜单,当用户点击并保持列表框项目时会出现。我有这个代码来获取被点击的项目的值。
ListBoxItem contextMenuListItem = (ListBoxItem)(myListBox.ItemContainerGenerator.ContainerFromItem(((MenuItem)sender).DataContext));
string item = (contextMenuListItem).Content.ToString();
但变量“item”现在包含被点击的项目的值。我想从项目中获取索引。可能吗?如果是,怎么样?
我正在使用Silverlight工具包中的上下文菜单。
答案 0 :(得分:1)
对于我的第一个Windows Phone应用程序(去年)我做了类似你的事情,我使用了像Shawn Kendrot一样的MVVM。
我的代码在GitHub上。即使它不是一个特殊的应用程序/代码,也可以随意查看。
答案 1 :(得分:1)
您为什么要尝试使用ToString
从列表中删除项目?以下是您的操作:使用ObservableCollection<
ModelItem
>
,将其绑定到ListBox,然后使用((MenuItem)sender).DataContext
{{1}} 。绑定普通字符串列表是一个糟糕的坏主意。
更好的是,采取Shawn Kendrot的建议并以MVVM的方式做事。当然,你现在似乎似乎很复杂,但是通过一些工作可以很容易地解决这个问题。我已经能够教育单纯的非编程人员;如果你可以编码,你应该能够学习如何使用MVVM模型。