none
Вопрос по WPF MVVM Как передать данные в ViewModel RRS feed

  • Вопрос

  • Доброе время суток.

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

    Как их связать с внешним миром.

    Если не трудно пример 

    С уважением, Александр



    • Изменено AlexLan73 1 июля 2018 г. 16:57
    1 июля 2018 г. 16:56

Ответы

  • Добрый день.

    На самом деле, в MVVM в плане взаимодействия с внешним миром от стандартных подходов применяемых в ООП, кроме Binding-а ничего и не отличается.

    Классы, в чистом виде взаимодействовать между собой не могут, т.к. они являются шаблонами для создания объектов.

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

    Ну и в целом можете посмотреть старенький пример вот здесь.

    Отвечающий

Все ответы

  • внешнийМир.Данные = данные;

    :)

    Шутки шутками, но примерно так и есть. Опишите в деталях что вы пытайтесь сделать, что такое "внешний мир" и т.п.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    1 июля 2018 г. 18:09
    Модератор
  • Типа помочь найти сайт по фразе "c# mvvm"? И получить такую ссылку?

    Я правильно вас понимаю?

    • Предложено в качестве ответа alexkr.net 2 июля 2018 г. 21:49
  • Добрый день.

    На самом деле, в MVVM в плане взаимодействия с внешним миром от стандартных подходов применяемых в ООП, кроме Binding-а ничего и не отличается.

    Классы, в чистом виде взаимодействовать между собой не могут, т.к. они являются шаблонами для создания объектов.

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

    Ну и в целом можете посмотреть старенький пример вот здесь.

    Отвечающий