Список‹› Привязка и нажатие кнопки с помощью mvvm light

Я пытаюсь использовать свет MVVM для достижения чего-то подобного. У меня есть следующий сценарий:

В моей модели я установил такие свойства, как ActivityName, Image, и есть конструктор класса, который принимает 2 параметра, такие как имя и изображение.

Im my DataAccess - я установил соединение с базой данных и реализовал требуемый метод, который будет извлекать данные из БД, и я сохраняю их в списке и возвращаю список в ViewModel.

В моей ViewModel я создал свойство списка, которое будет возвращать список, вызывая метод GetActivities(), который я определил в DataAccess.

Теперь моя проблема в том, что я не понимаю, как связать его в представлении, чтобы при нажатии кнопки он отображал список действий с изображением. При нажатии на какую-либо кнопку должно открыться новое окно с желаемым результатом. Как связать приведенный выше список и реализовать функциональность кнопок с помощью MVVM light.

Пожалуйста, помогите?

Спасибо


person Tarun    schedule 01.07.2010    source источник
comment
Какие элементы управления у вас есть в представлении?   -  person Ragunathan    schedule 01.07.2010
comment
У меня есть datagrid, чтобы показать изображение и его соответствующую активность   -  person Tarun    schedule 01.07.2010


Ответы (2)


  • Прежде всего, используйте ObservableCollection вместо списка, так как он будет уведомлять представление об изменении свойства или коллекции.
  • Затем установите DataContext вашего представления в модель представления. Если вы используете класс представления MVVMLight, DataContext будет установлен автоматически. Вы должны просто указать там имя ViewModel.
  • Затем установите ItemsSource DataGrid следующим образом: <dg:DataGrid ItemsSource="{Binding YourListInViewModel}"/>
  • Для обработки события щелчка вы можете использовать поведение Event-To-Command и написать свою логику в соответствующем обработчике команд кнопки.
person Amsakanna    schedule 01.07.2010
comment
Вы хотите сказать, что я должен использовать ObservableCollection как в Data Aceess при сохранении, так и в модели представления при возврате? Пожалуйста, предложите? - person Tarun; 01.07.2010
comment
Вам нужно создать ObservableCollection в виртуальной машине. Если GetActivities() возвращает список, создайте из него OC, как это ObservableCollection a = new ObservableCollection(GetActivities());. Но я бы порекомендовал вам создать метод GetActivities(), который скорее возвращал бы IEnumerable, так как он избегал бы двойного копирования: из базы данных в список, а затем в OC. - person Amsakanna; 01.07.2010
comment
Спасибо. Я попробую и дам вам знать - person Tarun; 01.07.2010

Привязать к DataContext элемента управления

person Ragunathan    schedule 01.07.2010