Как остановить комбобокс от добавления selectedItem в список itemSource при выборе элемента? - PullRequest
0 голосов
/ 15 апреля 2019

Короче говоря, я связываю 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 обновит мое свойство, не влияя на источник.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...