0
我正在使用C#创建Silverlight 4应用程序。使用数据库查询结果而不是显示在数据网格中
我努力做到以下几点:
MapNode endNode = null;
if (keyword != null && keyword != "")
{
EntityQuery<NodeIDProj> res = CampusQueries.getNodeIDByNameQuery(keyword);
var queryres = CampusQueries.Load<NodeIDProj>(res, (items) =>
{
foreach (var item in items.Entities)
{
MapNode n = mapHelp.getNodeByID(item.NodeID);
if (n != null)
{
endNode = n;
TrackAnimation();
}
}
}, true);
}
然而,在这之后,我的变量终端节点仍然是零。 TrackAnimation()的工作方式与endNode具有有效值相似,但在Load语句之外,endNode返回为null。
我知道我缺乏对这种工作原理的理解,我非常感谢他们提供的帮助。
我想要做的是查询我的数据库,我想在其他方法中使用这些结果,而不是在数据网格中显示它们。
我希望endNode具有我可以在其他方法中使用的值。
请帮我想办法做到这一点,谢谢!
编辑:
谢谢SLaks
我可以这样做:
MapNode终端节点= NULL;
if (keyword != null && keyword != "")
{
EntityQuery<NodeIDProj> res = CampusQueries.getNodeIDByNameQuery(keyword);
var queryres = CampusQueries.Load<NodeIDProj>(res, (items) =>
{
foreach (var item in items.Entities)
{
MapNode n = mapHelp.getNodeByID(item.NodeID);
if (n != null)
{
endNode = n;
TrackAnimation();
}
}
}, true);
}
queryres.Completed += new EventHandler(queryres_Completed);
void queryres_Completed(object sender, EventArgs e)
{
//stuff
}
如果是这样,我该如何访问endNode变量,因为它在另一个方法中声明?
这是否意味着endNode会在某个时候获得一个值? –
@Valerie:只在回调中,在方法本身完成后运行。 – SLaks
谢谢!我有另一个问题要发布,希望你仍然在:) –