В WPF приложения Я использую LINQ запрос для получения значений из ObservableCollection и обновить состояние некоторых объектов:Foreach петля через ObservableCollection
var shava = from clc in _ShAvaQuCollection where clc.xyID == "x02y02" select clc;
switch (shava.First().Status)
{
case 1:
x02y02.Status = MyCustControl.Status.First;
break;
case 2:
x02y02.Status = MyCustControl.Status.Second;
break;
...
}
В самом деле, xyID
является уникальным поле в этом ObservableCollection и его строковое значение соответствует имена объектов в XAML (эти объекты производятся от контроля клиента MyCustControl
).
То, что я пытаюсь сделать, это:
(1) для перебора всех записей в _ShAvaQuCollection
и, используя xyID
поле, ссылка каждого конкретного объекты, используя shava
в результате запроса к каждому из запись:
MyCustControl sc = (MyCustControl)this.FindName(shava.First().xyID);
(2) и обновлять состояние объекта, используя другие значения из этой записи, например:
switch (shava.First().Status)
{
case 1:
sc.Status = MyCustControl.Status.First;
break;
case 2:
sc.Status = MyCustControl.Status.Second;
break;
...
}
Все эти действия друг от друга работают хорошо, но я не могу совместить его с методом итерации рабочего, что-то вроде этого (это только идея, потому что мне не удалось получить compyleable код):
public void ReadingCollection(System.Collections.Generic.IEnumerable<ShowAvaQu> coll)
{
foreach (var xyid in coll)
{
//do my actions (1) and (2)
}
}
Пожалуйста, помогите мне организовать такую итерацию в этом последнем фрагменте кода внутри цикла foreach. У меня возникают проблемы с пониманием того, как сделать запрос к каждой конкретной записи коллекции внутри цикла.
Я описал все выше, чтобы четко указать, что я намерен делать с результатами такого запроса внутри этого цикла.
Какая ошибка у вас? –
Извините, может быть, я не очень корыстно сформулировал свою проблему. Фактически, этот самый код компилируется ОК. У меня возникают проблемы с запросом каждой конкретной записи внутри цикла. Спасибо, теперь я исправлю свой вопрос. – rem