Сохранить ComboBoxItem в базу данных в MVVM - PullRequest
0 голосов
/ 04 февраля 2020

В View у меня есть Combobox:

<ComboBox Name="Typ" Grid.Column="5" Grid.Row="0"  Margin="3 5 3 5" 
    SelectedItem="{Binding Path=typ, UpdateSourceTrigger=PropertyChanged}">

    <ComboBoxItem Content="ATMA"/>
    <ComboBoxItem Content="NTP" />
    <ComboBoxItem Content="ATMA" />

</ComboBox>

Я хочу получить выбранный ComboBoxItem в ViewModel и сохранить его в базе данных

public string typ
{
    get
    {
        return item.typ;
    }
    set
    {
        if (value != item.typ)
        {
            item.typ = value;
            OnPropertyChanged(() => typ);
        }
    }
}

Когда я хочу сохранить item.typ в базе данных, я получил ошибку, что у меня неправильный тип typ. В базе данных тип typ столбец string.

Код, который сохраняет в базу данных

 public override void save()
        {

            DialogResult dialogResult = MessageBox.Show("Czy napewno chcesz dodać obiekt?", "Powiadomienie", MessageBoxButtons.YesNo);
            if (dialogResult == DialogResult.Yes)
            {
                item.stan = "1";


                komunikat.dodaj();
                ATMAEntites.Przedstawiciele.Add(item);


                ATMAEntites.SaveChanges();
                load();
            }
            else if (dialogResult == DialogResult.No)
            {

            }

        }

Я думаю, что тип данных, который я получаю в typ из ComboBoxItem отличается от этой строки, но когда я пытаюсь преобразовать в строку, ошибка такая же

public string typ
{
    get
    {
        return item.typ.ToString();
    }
    set
    {
        if (value != item.typ)
        {
            item.typ = value;
            OnPropertyChanged(() => typ);
        }
    }
}

1 Ответ

1 голос
/ 04 февраля 2020

В случае ошибки, о которой вы говорите в комментариях ниже, это, вероятно, поле, которое вы пытаетесь сохранить в базе данных. Или, возможно, поле имеет тип ограничения на базу данных. Попытайтесь взглянуть на имеющееся у вас исключение и точно понять, что это такое.

Трудно точно сказать, что это такое, если вы не опубликуете для нас настоящее исключение.

Я отправляю вопрос на stackoveflow, в котором говорится об этой ошибке. Посмотрите, может ли это вам тоже помочь.

Эта ошибка, которая у вас возникла, такая же, как здесь Проверка не удалась для одного или нескольких объектов. См. Свойство EntityValidationErrors для более подробной информации

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