LINQ XML从另一种形式c#获取组合框值
本文关键字:获取 组合 XML 另一种 LINQ | 更新日期: 2023-09-27 18:05:56
我想在两个表单之间的标签中显示xml信息,但我正在获得"对象引用未设置为对象的实例"。我已经找了好几个小时了,但还没有找到答案。
cbFrom和cbTo是我需要将它们的值从一个FORM1发送到另一个FORM2 的两个文本框
public partial class FORM1 : Form
{
public string combofrom
{
get { return cbFrom.Text; }
set { cbFrom.Text = value; }
}
public string comboto
{
get { return cbTo.Text; }
set { cbTo.Text = value; }
}
}
FORM2
public partial class FORM2 : Form
{
public FORM2()
{
InitializeComponent();
}
private FORM1 = new FORM1();
public FORM1(FORM2 form)
{
this.form = form;
}
private void button1_Click(object sender, EventArgs e)
{
XDocument xmlDoc = XDocument.Load("schedulemanager.xml");
var n = from ep in xmlDoc.Descendants("Aircraft")
where ep.Attribute("mdy").Equals(form.combofrom.ToString())
select ep;
label8.Text = n.FirstOrDefault().ToString();// ****Object reference
//not set to an instance of an object
}
提前感谢!
更新最后我找到了一个解决办法。
FORM1
public void FORM1(object sender, EventArgs e)
{
FORM2 f2 = new FORM2(this);
}
/**You don't need any getter or setter
FORM2
private FORM2 f2;
public frmScheduleResult( frmReservation f)
{
InitializeComponent();
f2 = f;
}
var name = xmlDoc.Descendants("Aircraft")
.Where(n => n.Attribute("Source").Value == f1.cbFrom.Text)
.Select(n => (string)n)
.FirstOrDefault();
label7.Text = name;
试一下,希望对你有帮助:
String name = xmlDoc.Descendants("Aircraft")
.Elements("Name")
.Where(n => (string)n.Attribute("mdy") == form.combofrom.ToString())
.Select(n => (string)n) // get element's value
.FirstOrDefault(); // select only first value, if any
label8.Text = name.ToString();
try this:
if(form.combofrom!=null)
{
var n = (from ep in xmlDoc.Descendants("Aircraft")
where ep.Attribute("mdy").Equals(form.combofrom.ToString())
select ep).FirstOrDefault();
if(n!=null)
{
label8.Text = n.FirstOrDefault().ToString();
}
}