2012-02-11 3 views
1

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

мой текущий код для сбережений

private void btnAddxuid_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      ListViewItem lvi = new ListViewItem(); 
      lvi.Text = txtxuidGamertag.Text; 
      lvi.SubItems.Add(txtXuid.Text); 
      listXuid.Items.Add(lvi); 
      TextWriter xuids = new StreamWriter(xuidspath, true); 
      xuids.WriteLine(txtxuidGamertag.Text + "-" + txtXuid.Text); 
      txtXuid.Clear(); 
      txtxuidGamertag.Clear(); 
      xuids.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
    } 
+0

Включен ли индекс каждого элемента в строку в файле с тем же номером строки? –

+0

Пожалуйста, не прикрепите свои заголовки к «C#» и тому подобное. Для этого нужны теги. –

+0

@ Тим Шмельтер Я не знаю, как бы я это сделал –

ответ

0

Простое решение (без переделки ваш общий подход) будет просто приложить к OnClick даже кнопки удаления. Затем обработчик определит, какой элемент удалить (я возьму «выбранный»), удаляю его, а затем пишу поверх файла с текущим содержимым списка.

Пример (примечание, это псевдо-код)

OnRemoveButtonClickHandler() 
{ 
    listXuid.Items.Remove(listXuid.SelectedItem); 

    // open the file for overwriting 
    foreach (var item in listXuid.Items) 
    { 
     // write out each item in your format 
    } 
} 

В общем, вы должны попытаться сохранить «данные и логику» в приложении от пользовательского интерфейса. В этом случае это означало бы написание класса модели для элементов в списке, связывание источника элементов списка с коллекцией этих элементов, а затем обращение к источнику файла поддержки при необходимости (т. Е. Загрузку структуры данных при запуске и запись в это только тогда, когда вам нужно). Презентация будет обрабатываться каким-то шаблоном данных.

Если вам интересно, ознакомьтесь с WPF и MVVM.

0

Лучшая идея состоит в том, чтобы сохранить и переписать все ваши элементы в текстовом файле ТОЛЬКО при выходе из программы или когда ваша программа выдает необработанное исключение. поэтому вам не нужно обращаться к файлу каждый раз, когда вы нажимаете кнопки «Удалить» или «Добавить». надеюсь, что вы получите идею ...

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