-1
プログラムを実行すると、XMLファイルからlistBox(lstBox)が読み込まれます。 それから、XMLファイルから要素または連絡先を削除するコードがあり、listBoxからその項目を削除したいと思います。 lstBox.Items.Clear()またはRemoveAtを使用して削除しようとすると、致命的なエラーエラーが発生します。これは明らかに、データソースとしてアイテムソースがあるためです。ListBoxをクリアすると致命的なエラーが発生するC#UWP
ここに、すべてのコードが貼り付けビンにあります。私は、関連する方法であると信じる何
https://pastebin.com/CFs21njZ
は、任意のヘルプ
public async void loadContacts()
{
StorageFile file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("Contacts.xml");
XmlReader xmlReader = XmlReader.Create(file.Path);
while (xmlReader.Read())
{
if (xmlReader.Name.Equals("ID") && (xmlReader.NodeType == XmlNodeType.Element))
{
lstd.Add(xmlReader.ReadElementContentAsString());
}
}
DataContext = this;
xmlReader.Dispose();
}
そして
private async void btnDeleteContact_Click(object sender, RoutedEventArgs e)
{
StorageFile file = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("Contacts.xml");
XDocument xdoc = XDocument.Load(file.Path);
if (lstBox.SelectedIndex != -1)
{
xdoc.Element("Contacts")
.Elements("Contact")
.Where(x => (string)x.Element("ID") == lstBox.SelectedItem.ToString()).Remove();
//lstBox.SelectedIndex = -1;
updateXMLFile(xdoc);
//lstBox.Items.Clear(); //Causing catastrophic error
loadContacts();
}
}
乾杯です。