我把閱讀條形碼放在單獨的方法中,讀取條形碼並將其放入名爲條形碼的文本框中。並創建了一個按鈕,將數據加載coresponding到條形碼,但面臨的問題FirstOrDefault沒有參數
private void Load_Click(object sender, RoutedEventArgs e)
{
var str = @"<Books xmlns=""""> <book Barcode=""780672318863""><Serial>11</Serial>
<name>abc</name> <detail>Fantasy</detail></book>
<book Barcode=""780672318864""><Serial>12</Serial>
<name>abc</name><detail>Fantasy1</detail></book></Books>";
var strBarcode = barcode.Text;
MessageBox.Show(strBarCode);
XDocument docX = XDocument.Parse(str);
var s = docX.Descendants("book").FirstOrDefault(a => a.Attribute("Barcode").Value == strBarcode);
spnl.DataContext = s;
}
現在消息框說strBarCode具有正確的值,但它沒有出現在程序和 價值是走出來爲空 上另一方面,如果我直接把「780672318863」代替strBarcode它正在顯示值
任何人都可以告訴我,我哪裏會出錯?
您的XML不包含任何被稱爲「lense」的*元素,所以目前沒有辦法使這個代碼正常工作。如果您可以發佈一個簡短但完整的示例(理想情況下是一個控制檯應用程序)來展示問題,那將非常有幫助。 – 2012-01-02 10:23:06
@JonSkeet - 但它有一個''。 OP對域詳細信息進行了不完整的混淆處理。 –
2012-01-02 10:32:03
@亨克·霍特曼:是的,但善良知道同時還有什麼變化。或者,這可能不是一種混淆 - 也許它的代碼實際上是錯誤的,當他對條形碼進行硬編碼時,他做出了一些其他更改。無法確定 - 但我們可以*知道寫入的代碼永遠不會找到「lense」元素。這是一個簡短而完整的程序,展示問題非常重要。 – 2012-01-02 10:35:01