2014-10-02 4 views
0

Я использую 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"; 
     } 
    }); 


    } 
    } 
} 

Пожалуйста, помогите, я застрял на это, так как два дня.

+0

вы получаете правильный пункт в переменной SelectedItem? – WAQ

ответ

0

я решить эту проблему с помощью следующей

var item = ((MenuItem)sender).DataContext as ItemClass 

ItemClass является класс, который содержит обязательные детали различных элементов,

Смежные вопросы