मैंने नीचे एक DeleteSlectedItemListBox विधि बनाई है जिसमें एक कोड है जिसने सूची-बॉक्स में एक चयनित आइटम हटा दिया है जब हटाएं बटन क्लिक किया गया है। हालांकि ऐसा नहीं लगता कि यह काम कर रहा है।

कोड को सूची-बॉक्स के साथ-साथ टेक्स्ट-फ़ाइल में भी हटाना है। मैं उसको कैसे करू ?

 private void DeleteSelectedItemListBox()
 {
    DataTable dt = new DataTable();
    string FileName = (@"C: \Users\StanleyM\Desktop\PhoneBook\PhoneBook\bin\Debug\Personal.text");
    StreamReader streamReader = new StreamReader(FileName);
    string line = "";
    int Counter = -1;

    while ((line = streamReader.ReadLine()) != null)
    {
        foreach (var item in line)
        {
            if (item.ToString() == SelectedItem.ToString())
            {
                Counter--;
                dt.Clear();
                ListBox.Remove(line);
            }           
        }       
    }
}
0
Stanley Mabunda 11 सितंबर 2017, 12:01

2 जवाब

सबसे बढ़िया उत्तर

यदि आप एमवीवीएम पैटर्न का उपयोग कर रहे हैं तो आप XAML चयनित आइटम और अपनी सूची जैसे ObservableCollention से जुड़ सकते हैं। <ListBox ItemsSource="{Binding YourList}" SelectedItems="{Binding YourSelectedItem}"></ListBox> फिर अपनी हटाने की विधि में आप कोशिश कर सकते हैं:

private void DeleteSelectedItemListBox()
{    
    var deletingNumber = YourList.IndexOf(YourSelectedItem);
    var allLines = File.ReadAllLines(path).ToList();
    allLines.RemoveAt(deletingNumber);
    File.WriteAllLines(path,allLines.ToArray());
}
0
Ralf Bönning 11 सितंबर 2017, 20:18
  while (listBox1.SelectedItems.Count > 0)
  {
    var index = listBox1.Items.IndexOf(listBox1.SelectedItem);
    listBox1.Items.RemoveAt(index);
    RemoveTextLine(index);
  }

private void RemoveTextLine(int index){

  using(var sr = new StreamReader("C:\Users\StanleyM\Desktop\PhoneBook\PhoneBook\bin\Debug\Personal.text"))
  using(var sw = new StreamWriter("C:\Users\StanleyM\Desktop\PhoneBook\PhoneBook\bin\Debug\temp.text"))
  {
   int line=0;
   while((sr.ReadLine()) != null)
   {
      if(line != index)
      sw.WriteLine(line);
      line ++;
   }
 }

  File.Delete("Personal.txt");
  File.Move(tempFile, "Personal.txt");
}

ये कोशिश करें

0
Shiwanka Chathuranga 11 सितंबर 2017, 12:33