我有一個xaml中的ListBox項目,它從一個從xml文件中讀取項目的方法獲取ListBoxItems。從SelectionChanged事件發起的方法中返回一個值
我有成功加載列表,我也有一個函數,可以通過應用程序添加項目列表。現在我需要一種方法來刪除項目。我想通過從列表中選擇一個ListBoxItem來獲取要刪除的項目。我腦子裏想的是使用SelectionChanged事件,然後使用下面的代碼:
string selected;
private void XMLista_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
brisanjeDugme.IsEnabled = true;
selected = XMLista.SelectedItem.ToString();
}
然後我會用它來開拓machineList.xml文件,然後基於價值有刪除,如果父節點該節點等於所選的ListBoxItem。
所以這裏是用於去除方法:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
XDocument root = XDocument.Load("machineList.xml");
root.Descendants("stampac").Where(p => p.Element("IP").Value == selected).Remove(); // <- selected variable is used here.
root.Save("machineList.xml");
XMLista.Items.Clear();
ListBox_Load(sender, e);
brisanjeDugme.IsEnabled = false;
}
然而,我在使用在上述方法中,我得到在XMLista_SelectionChanged方法所示的System.NullReferenceException錯誤使用所選擇的可變的問題,其中,線我定義了選定的變量。我不明白爲什麼要這樣做,當我確定按鈕只能按下,如果我有一個選定的listboxitem(並且我測試了在消息箱中收到的值,它顯示正確的值)。
任何想法?
嗨尼古拉。你寫了一個很長的問題,詳細說明了你想要在你的項目中做什麼,但是你沒有提供一個例外的堆棧......試着重寫這個問題,以便我們可以幫你,刪除不必要的細節瞭解這個問題。 –
@swiszcz我試圖更好地發佈我的問題。讓我知道是否有一些缺失,並感謝幫助(和小費)。 –