Как предопределить значение ComboBox с привязкой данных WPF
Есть WPF приложение с БД mssql. В общем есть страница с поставками и составом поставок. Прикрепляю скриншот чтобы было понятнее.
При нажатии на поставку в верхней таблице в нижней отображаются все товары которые были в ней доставлены.
Также при нажатии на кнопку "Добавить в состав", открывается страница добавления состава поставки. Скриншот прикрепляю
Проблема такова: При нажатии на кнопку "добавить в состав" в странице добавление в ComboBox уже должен быть выбран и отображаться Номер поставки на который нажал пользователь. Я передаю на страницу редактирования с помощью аргумента выбранную поставку
gridDeliveries.SelectedItem as Delivery
То есть я знаю Id, знаю объект Delivery который выбран. Я пробовал по всякому задать значение для ComboBox, и SelectedValue и SelectedItem, и задать значение ID у объекта currentComposition который я создаю в базе при помощи этой страницы. ComboBox всё равно не имеет сразу это значение. Прикрепляю код.
<ComboBox Template="{DynamicResource ComboBoxTemplate1}"
ItemContainerStyle="{DynamicResource ComboBoxItemContainerStyle1}"
Name="cmbDelivery"
Width="300"
IsSynchronizedWithCurrentItem="True"
DisplayMemberPath="ID"
SelectedItem="{Binding Delivery}"
SelectedValuePath="ID"
Background="Transparent"
BorderThickness="0">
</ComboBox>
private DeliveryComposition currentComposition = new DeliveryComposition();
public DeliveryCompositionEdit(DeliveryComposition selectedComposition, Delivery selectedDelivery)
{
InitializeComponent();
if (selectedComposition != null)
{
currentComposition = selectedComposition;
}
cmbProduct.ItemsSource = DeliveryView.contextDB.Product.ToList();
cmbDelivery.ItemsSource = DeliveryView.contextDB.Delivery.ToList();
DataContext = currentComposition;
if (selectedDelivery != null)
{
cmbDelivery.SelectedValue = selectedDelivery.ID;
currentComposition.ID_Delivery = selectedDelivery.ID;
cmbDelivery.UpdateLayout();
}
}
Ответы (1 шт):
if (selectedDelivery != null)
{
currentComposition.ID_Delivery = selectedDelivery.ID;
cmbDelivery.UpdateLayout();
cmbDelivery.SelectedItem = selectedDelivery;
}
Прописал следующий код в проверке, и теперь в ComboBox заранее установленное значение, в зависимости от выбранной поставки.