我将读取条形码放在单独的方法中,该方法读取条形码并将其放在名为barcode的文本框中。并创建了一个按钮,将加载与该条形码对应的数据,但面临问题
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的位置,它会正确显示值
谁能告诉我我哪里错了?
不可复制。
我用docX.Descendants("book")...
运行你的代码,它产生正确的元素。
你可以试试
string strBarcode = barcode.Text.Trim();
,但其余的你只需要在调试器中看看。