В приложении WPF я использую запрос LINQ, чтобы получить значения из 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;
...
}
Все эти действия в отдельности работают хорошо, но я не могу объединить его с рабочим итерационным методом, что-то вроде этого (это только идея, потому что мне не удалось получить компилируемый код):
public void ReadingCollection(System.Collections.Generic.IEnumerable<ShowAvaQu> coll)
{
foreach (var xyid in coll)
{
//do my actions (1) and (2)
}
}
Пожалуйста, помогите мне организовать такую итерацию в этом последнем фрагменте кода внутри цикла foreach. У меня возникают проблемы с пониманием того, как сделать запрос к каждой конкретной записи коллекции внутри цикла.
Я описал все это выше, чтобы прояснить, что я собираюсь делать с результатами такого запроса в этом цикле.