带有ListBoxItem的上下文菜单
本文关键字:菜单 上下文 ListBoxItem 带有 | 更新日期: 2023-09-27 18:25:22
我正在ListBox下的xaml页面中使用ContextMenu来删除ListBoxItem。我面临的问题是,当我长按ListBoxItem时,会出现删除选项,该项目会被删除,但下次尝试时,其他项目不会被删除。有人能告诉我点击ContextMenu.Menuitem后如何检索列表框项目详细信息吗。这是我的密码。
private void deleteitem_Click(object sender, RoutedEventArgs e)
{
NavigationContext.QueryString.TryGetValue("username", out username);
NavigationContext.QueryString.TryGetValue("password", out password);
ListBoxItem selecteditem = this.sniplist.ItemContainerGenerator.ContainerFromItem((sender as MenuItem).DataContext) as ListBoxItem;
Item item = selecteditem.DataContext as Item;
HttpWebRequest deleterequest = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response=deleterequest.BeginGetResponse(new AsyncCallback(deleteitem),deleterequest) as HttpWebResponse;
//MessageBox.Show("Your item has been deleted");
}
删除项方法
private void deleteitem(IAsyncResult ar)
{
//throw new NotImplementedException();
HttpWebRequest request=(HttpWebRequest)ar.AsyncState;
HttpWebResponse response=(HttpWebResponse)request.EndGetResponse(ar);
if(response.StatusCode==HttpStatusCode.OK)
{
using(Stream respstream=response.GetResponseStream())
{
StreamReader reader = new StreamReader(respstream,
System.Text.Encoding.UTF8);
string parsestring = reader.ReadToEnd();
Debug.WriteLine("Response data:" + parsestring);
}
}
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
items.Remove(item1);
this.sniplist.ItemsSource = items;
MessageBox.Show("You item has been deleted");
if (sniplist.Items.Count == 0)
{
txt1.Text = "Please click + to add more items into your account";
}
});
}
}
}
请帮帮我,两天以来我一直被困在这个问题上。
我通过使用以下来解决问题
var item = ((MenuItem)sender).DataContext as ItemClass
ItemClass是包含不同项的绑定详细信息的类,