【发布时间】:2025-12-27 21:50:12
【问题描述】:
我将读取条形码放在单独的方法中,该方法读取条形码并将其放入名为条形码的文本框中。并创建了一个按钮来加载与该条形码对应的数据,但面临问题
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 具有正确的值,但它没有显示在程序中,并且
s 值出来为空
另一方面,如果我直接用“780672318863”代替strBarcode,它会正确显示值
谁能告诉我哪里出错了?
【问题讨论】:
-
您的 XML 不包含名为“lense”的 any 元素,因此目前这段代码无法正常工作。如果您可以发布一个简短但完整的示例(理想情况下作为控制台应用程序)来演示问题,那将非常有帮助。
-
@JonSkeet - 但它确实有一个
<book Barcode="..">。 OP 对域详细信息进行了不完整的混淆。 -
@HenkHolterman:是的,但天知道同时还有什么变化。或者这不是混淆——也许他的代码实际上是错误的,当他对条形码进行硬编码时,他做了一些其他的改变。无法确定 - 但我们可以知道编写的代码永远不会找到
lense元素。这就是演示问题的简短而完整的程序如此重要的地方。