aszhitarev
@aszhitarev
йей!

Как вывести в combobox поле, составляющееся из частей?

Моё почтение!
Помогите решить задачу по выводу combobox.
У меня есть таблица в БД, описанная классом.
У класса есть два свойства - FirstName и LastName.
Мне необходимо вывести в combobox оба элемента сразу.
Почитал перед этим интернеты и показали свойство класса partial, которое может помочь решить задачу. На первый взгляд - да. Я сделал новое свойство, которое назвал FullName, Объявил, что оно образовывается как конкатенация полей LastName и FullName. И понял, что мне не хватает знаний или какого-то понимания механики. В принципе, это одно и тоже (:
Смотрите, как я писал выше - я использую Code First подход. Соответственно, когда я объявил новое поле, то оно добавилось в таблицу. О чём мне и сказала студия, потребовав обновить БД.
Где я ошибся и как мне решить задачу?
Спасибо.
  • Вопрос задан
  • 272 просмотра
Решения вопроса 1
aszhitarev
@aszhitarev Автор вопроса
йей!
всё оказалось гораздо проще

[NotMapped]
public string ManagerFullName { get { return ManagerLastName + " "+ ManagerFirstName; } }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
yarosroman
@yarosroman Куратор тега C#
C# the best
Если в модели вам нужно какое то автовычисляемое поле или свойство которого не должно быть в базе, то его нужно пометить атрибутом [NotMapped].
Ответ написан
Комментировать
WarFollowsMe
@WarFollowsMe
Опишите свой ItemTemplate для ComboBox.
<ComboBox ItemsSource={Binding Items}>
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding FirstName}"/>
                <TextBlock Text="{Binding LastName}"/>
            </StackPanel>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

Главное вы должны понимать, что одной лишь модели полученной "Code-First подходом" для WPF недостаточно. Вам необходимо создать ViewModel, в которой надо реализовать INotifyPropertyChanged. И уже эту viewmodel кидать в DataContext на view.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы