Короче говоря, я связываю ItemSource моего выпадающего списка со списком объектов. Я связываю SelectedItem со свойством. Проблема в том, что всякий раз, когда я выбираю элемент в выпадающем списке и нажимаю кнопку, SelectedItem дублирует себя (он даже добавляется в базу данных). Это не то, что я хочу.
Я пытался изменить режим привязки и updateSourceTrigger, но пока у меня ничего не вышло. Я также пытался привязать свой источник данных к другому списку (копия из хранилища базы данных), но проблема сохраняется.
XAML (просмотр):
<ComboBox Margin="0,15,0,0" DockPanel.Dock="Top" materialDesign:HintAssist.Hint="Table" VerticalAlignment="Top" SelectedItem="{Binding Reservation.Table}" ItemsSource="{Binding Tables}" DisplayMemberPath="Name" ></ComboBox>
ViewModel:
public ObservableCollection<Data.Table> Tables
{
get { return _tables; }
set
{
SetValue(ref _tables, value);
}
}
Tables = _tableRepo.GetTables();
Логика кнопок:
private void Save()
{
if (IsNewReservation)
{
_reservationRepo.AddReservation(Reservation);
}
else
{
_reservationRepo.UpdateReservation(Reservation);
}
}
Кнопка XAML:
<Button Grid.Column="2" Grid.Row="2" FontSize="20" Height="45" Command="{Binding SaveCommand}" Content="Save">
<Button.IsEnabled>
<MultiBinding Converter="{StaticResource HasAllTextConverter}">
<!--https://www.codeproject.com/Questions/1101746/Need-to-enable-the-button-when-all-textbox-has-val-->
<Binding ElementName="LastName" Path="Text"/>
<Binding ElementName="AmountPeople" Path="Text"/>
<Binding ElementName="Phone" Path="Text"/>
</MultiBinding>
</Button.IsEnabled>
</Button>
Я ожидаю, что SelectedItem обновит мое свойство, не влияя на источник.