Я использую 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);
}
Однако после этого момента моя переменная endNode все еще равна нулю. TrackAnimation () работает так, как будто endNode имеет допустимое значение, но вне оператора Load endNode возвращается к нулю.
Я знаю, что мне не хватает понимания того, как это работает, и я был бы очень признателен за предоставленную помощь.
То, что я пытаюсь сделать, - это запросить мою базу данных, и я хочу использовать эти результаты в других методах, а не отображать их в таблице данных.
Я хочу, чтобы endNode имел значение, которое я могу использовать в других методах.
Пожалуйста, помогите мне найти способ сделать это, спасибо!
EDIT:
Спасибо, SLaks
Могу ли я сделать что-то вроде:
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);
}
queryres.Completed += new EventHandler(queryres_Completed);
void queryres_Completed(object sender, EventArgs e)
{
//stuff
}
Если так, как я могу получить доступ к переменной endNode, как она объявлена в другом методе?