2015-06-23 4 views
1

Я пытаюсь удалить запись из своего ListBox при нажатии на кнопку «Удалить запрос». Теперь проблема в том, что ничего не происходит, когда я нажимаю на свою кнопку. Есть также no ошибки, которые так когда-либо были.Удаление выбранного элемента из окна списка

Вот фрагмент кода:

private void btnDeleteQuote_Click(object sender, EventArgs e) 
    { 
     if (lbxQuoteNumber.SelectedItem == null) 
      return; 
     var quote = (ListBoxViewItem<Quote>)lbxQuoteNumber.SelectedItem; 
     foreach (var qu in quote.Item.QuoteNumber) //<<-- I can even remove this line, but it still does not work 
      lbxQuoteNumber.Items.Remove(quote); 
    } 

я делаю что-то, очевидно, здесь не так, потому что я не могу понять, что происходит. Я перезапустил приложение, и записи, которые я «удалил», все еще отображаются, и они не удаляются из моей базы данных.

Любая помощь была бы принята с благодарностью! Спасибо!

EDIT: Вот мое кодирование, где я заполнить мой lbxQuoteNumber

private void lbxRepresentatives_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     lbxQuoteNumber.Items.Clear(); 
     if (lbxRepresentatives.SelectedItem == null) 
      return; 

     var rep = (ListBoxViewItem<Represetative>)lbxRepresentatives.SelectedItem; 
     foreach (var qu in rep.Item.Quotes) 
      lbxQuoteNumber.Items.Add(new ListBoxViewItem<Quote>(qu, qu.QuoteNumber)); 
    } 

Я ссылка на все мои классы/таблицы из другой веб-службы, я работает в фоновом режиме. Возможно, это проблема, и я должен создать функцию delete (код сначала), или должно быть хорошо, чтобы удалить мои данные из этой программы, где мой ListBox включен?

+0

Этот бросок, вероятно, не то, что вы хотите - '(ListBoxViewItem ) lbxQuoteNumber.SelectedItem;'. Здесь вы выбираете поле списка, а не выбранный элемент. Осторожно с круглыми скобками. Переменная перечисления также не используется. –

+0

Где вы удаляете из базы данных действие? –

+0

@Jeroen van Langen - Извините, я думал, что «Items.Remove» должен был удалить элемент из базы данных. Есть ли способ удалить его из базы данных? Я не очень хорош в C# извините! – CareTaker22

ответ

0

Я думаю, что вы не совершали изменения в БД:

lbxQuoteNumber.SaveChanges(); 

после удаления элементов.

EDIT: Или называть его на соответствующую объекту, если «lbxQuoteNumber» не ваш DB объект контекста :)

+0

Спасибо за ответ! Я получаю сообщение об ошибке: _Error 'System.Windows.Forms.ListBox' не содержит определения для 'SaveChanges' и никакого метода расширения 'SaveChanges', принимающего первый аргумент типа 'System.Windows.Forms.ListBox' (вы отсутствуете, используя директиву или ссылку на сборку?) _ – CareTaker22

+0

Я видел ваше редактирование, я попробую это спасибо! – CareTaker22

+0

Подождите, где именно вы удаляете какие-либо вещи из БД? Кажется, что 'lbxQuoteNumber.Items.Remove (quote)' удаляет только элементы из списка. –

0

Вы должны также удалить его из базы данных, так как вы не предоставили какой-либо код с тем, как вы обрабатываете свою базу данных, я покажу вам, что я делаю.

dbContext.Quotes.Remove(quoteObject); 
dbContaxt.SaveChanges(); 
+0

Спасибо! Я дам ему попробовать в ближайшее время! – CareTaker22

+0

Не создавайте новый контекст для этого, вам нужно использовать тот же контекст, который вы использовали для загрузки объектов в форму –

+0

Хорошо, я сделаю это, когда вернусь на свой основной компьютер. Я буду держать вас в курсе всего, как только оно будет проверено. Благодарим вас за предоставленную информацию! :) – CareTaker22

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