Я использую ContextMenu на моей странице xaml в ListBox для удаления элемента ListBox. Проблема, с которой я сталкиваюсь, заключается в том, что, когда я долгое время нажимаю кнопку ListBoxItem, появляется опция удаления, и элемент удаляется, но когда я попробуйте в следующий раз, когда другой элемент не будет удален. Так может кто-нибудь сказать мне, как щелкнуть ContextMenu.Menuitem. Я могу получить список. Подробности элемента. Вот мой код.Контекстное меню с ListBoxItem
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");
}
Метод DeleteItem
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";
}
});
}
}
}
Пожалуйста, помогите, я застрял на это, так как два дня.
вы получаете правильный пункт в переменной SelectedItem? – WAQ