I have a listbox to hold contact info...when I delete a contact I would like to update the listbox....but everything I have tried doesnt seem to work....i have a "deletecontact" method and a "loadcontactlist" method...
the delete method removes the contact from the xml file and the loadcontacts method reads a xml file and loads the data into the listbox....below is the delete method, I removing the listbox items work because if I comment out the loadcontacts method..all the contents of the listbox are removed...but they dont get removed when I uncomment the loadcontacts method...not sure why.
btw - when I use lstContacts.Items.Clear() I get an error saying cant use when ItemSource is in use!
any help would be appreciated
-InkedGFX
the delete method removes the contact from the xml file and the loadcontacts method reads a xml file and loads the data into the listbox....below is the delete method, I removing the listbox items work because if I comment out the loadcontacts method..all the contents of the listbox are removed...but they dont get removed when I uncomment the loadcontacts method...not sure why.
btw - when I use lstContacts.Items.Clear() I get an error saying cant use when ItemSource is in use!
private void DeleteContact_Click(object sender, RoutedEventArgs e) {
if (lstContacts.SelectedIndex == -1)
{
return;
}
else
{
contact.DeleteNode(AppDomain.CurrentDomain.BaseDirectory + "Contacts.xml", lstContacts.SelectedIndex + 1, lstContacts);
Thread.Sleep(500);
lstContacts.ItemsSource = null;
for (int i = 0; i < lstContacts.Items.Count; i++)
{
int j = lstContacts.SelectedIndex;
lstContacts.Items.RemoveAt(j);
j++;
}
if (lstContacts.Items.Count == 0)
{
Thread.Sleep(500);
contact.LoadContactList(AppDomain.CurrentDomain.BaseDirectory + "Contacts.xml", lstContacts);
}
}
}
public void LoadContactList(string path, System.Windows.Controls.ListBox lst) {
XmlDocument xDoc = new XmlDocument();
xDoc.Load(path);
XmlNodeList contactNode = xDoc.SelectNodes("/Contacts/Contact");
foreach (XmlNode node in contactNode)
{
if (node["ContactName"] != null)
{
string id = node["ID"].InnerText;
string name = node["ContactName"].InnerText;
string phone = node["Phone"].InnerText;
string address = node["Address"].InnerText;
contactList.Add(new Contact() { ID = id, ContactName = name, ContactPhone = phone, Address = address });
nameList.Add(ContactName);
contactIndex.Add(Convert.ToInt32(id));
}
else
lst.Items.Add("No Contacts");
}
lst.ItemsSource = contactList;
}
any help would be appreciated
-InkedGFX