В ComboBox есть некоторые элементы, которые должны быть включены, и некоторые, которые должны быть отключены (и видимы).
Сначала задается источник элементов ComboBox:
comboBoxMachine.ItemsSource = machineList;
, где comboBoxMachine представляет собой ComboBox
, а machineList представляет собой List<Machine>
(Machine
представляет собой пользовательский объект)
Позже необходимо проверить условие для каждой машины из списка, и, если оно выполнено, соответствующий элемент из ComboBox должен быть отключен.
Ниже приведена комбинация кода / псевдокода логики:
private void modifyMachineComboBoxItems()
{
foreach (Machine mch in machineList)
{
if (constructionSiteSchedule.ReservationMachinePeriods.Count(x => x.MachineId == mch.Id) > 0) //if this condition is fulfilled, it should be not possible to select the machine from the comboBoxMachine
{
int currentPosition = machineList.IndexOf(mch);
disable the element from the comboBoxMachine at position currentPosition;
}
}
}
Что я до сих пор не понял, так это как отключить элемент из ComboBox в заданной позиции, поэтому я был бы очень благодарен, если бы кто-нибудь мог изменить приведенный выше код так, чтобы элементы ComboBox для машин, удовлетворяющих условию, были отключены .