2013-12-06 2 views
0

Я не знаю, как написать класс viewmodel для ниже combobox.Создание viewmodel в MVVM

Предположим, у меня есть две таблицы, а именно: Cars и EngineMakers

Автомобили Стол:

CarID 
CarName 
EngineMakerID (Foreign Key) 

EngineMakers Таблица:

EngineMakerID 
EngineMakerName 

Теперь в выпадающем списке я хочу показать name of the EngineMaker в списке , Теперь, когда я сохраняю изменения, таблица EngineMakerID in Cars должна быть обновлена. Как написать viewmodel для вышеуказанного вопроса?

+0

Во-первых, у вас есть вы 'model' слой? «ViewModel» - это в основном способ подключения «Модели» к «Просмотр». Когда я говорю в основном, я имею в виду действительно базовый :) – Tico

+0

У меня есть моя модель, и у меня также есть combobox на мой взгляд. У меня есть основная идея viewmodel. Но я не знаю, как кодировать для viewmodels. Да, я искал сеть о написании моделей просмотра, но я ничего не понимаю. Если кто-то объяснит мне viewmodels, имея в виду вышеупомянутый пример или аналогичный, тогда мне будет очень ясно. – Khushi

+0

Я понимаю, я тоже начинаю, и это одна вещь, которую я все еще борется. Идея заключается в создании своего рода класса BLLesque. Я предполагаю, что вы реализовали 'OnPropertyChanged()' в вашем 'View'. Что я ** ** сделал бы, это проверить, есть ли у меня или нет объект из класса внутри конструктора. Это подробная вещь, я дам вам некоторые ссылки, извините. www.galasoft.ch/mvvm/ (хороший легкий инструмент ToolKit); http://msdn.microsoft.com/en-us/library/windowsphone/develop/gg521153%28v=vs.105%29.aspx (в некотором примере) – Tico

ответ

1

вы в основном хотят иметь таблицу автомобилей, что ссылке, двигатель MAKER MODEL

это также должно помочь

http://blog.cylewitruk.com/2010/09/wpf-combobox-and-databinding-datacontext-itemssource-displaymemberpath-selecteditem-selectedvalue-selectedvaluepath/

// модель

public class Cars 
{ 
    public int CarID {get;set} 
    public int CarName {get;set} 
    // Foreign key 
    public int EngineMakerID { get; set; } 

    // Navigation properties 
    public virtual EngineMakers EngineMakers { get; set; } 
} 
public class EngineMakers 
{ 
    public int EngineMakerID {get;set} 
    public int EngineMakerName {get;set} 
    // Navigation properties 
    public virtual List<EngineMakers> Courses { get; set; } 
} 

// ViewModel

public class MainWindowViewModel : ViewModel 
    { 

     public ObservableCollection<Cars> Cars { get; private set; } 
     public Cars SelectedSourceCars { get; set; } 
    } 

// Связывание

<ComboBox 
    ItemsSource="{Binding Cars, Mode=OneWay}" 
    DisplayMemberPath="Name" 
    SelectedItem="{Binding SelectedSourceCars}" /> 
+0

Отличный ответ, но Kushi не забудьте инициировать вашу ViewModel – Aymeric

Смежные вопросы