none
WPF + WCF + MVVM RRS feed

  • Вопрос

  • Самостоятельно не смог найти понятный для меня пример приложения WPF + WCF + MVVM, если у кого есть такие ссылки, пожалуйста поделитесь.

    Или своими словами, что тут будет являться моделью , что вью-моделью.

    Сейчас все написано без использования паттерна.

    Есть сервис,

     там получается есть класс DataContext.Person ,  т.е. сама таблица Персон

     есть допустим  

    [DataContract]      
    public class ExtendetPerson     
    {           
    public Person;           
    public string AdditionalInfo;      
    }

    Далее в нем описан интерфейс

    [ServiceContract(SessionMode = SessionMode.Required)]
    public interface IMyService
    {
            [OperationContract]
            [FaultContract(typeof(MyCantGetException))]
            List<Person> GetPersons();
    }

    и реализация этого интерфейса.

    В клиенте эти функции вызываются в кодбехайнде. Типа так..

    using (var db = currentOption.ClientFactory.CreateClient())
    {
       var persons = db.GetPersons();

    Как вот это переделать в MVVM...

    14 ноября 2016 г. 13:25

Ответы

  • Вот это вот будет во ViewModel например PersonViewModel

    public PersonViewModel()

    {

    using (var db = currentOption.ClientFactory.CreateClient()) { var persons = db.GetPersons();

    }

    }

    Где то во View будет

    <ListView ItemsSource={Binding persons} />


    Также во View где то можно в XAML можно C# в методе

    private void Window_Loaded(... не помню что тут пишется автоматически студией)
    {
    DataContext = new PersonViewModel();
    }


    А вообще Здесь у Алексея всё есть про старт на mvvm
    14 ноября 2016 г. 14:17

Все ответы

  • Вот это вот будет во ViewModel например PersonViewModel

    public PersonViewModel()

    {

    using (var db = currentOption.ClientFactory.CreateClient()) { var persons = db.GetPersons();

    }

    }

    Где то во View будет

    <ListView ItemsSource={Binding persons} />


    Также во View где то можно в XAML можно C# в методе

    private void Window_Loaded(... не помню что тут пишется автоматически студией)
    {
    DataContext = new PersonViewModel();
    }


    А вообще Здесь у Алексея всё есть про старт на mvvm
    14 ноября 2016 г. 14:17
  • Спасибо, я правильно понимаю , что model описывать не нужно, так как она в WCF. Даже если нам нужна какая-то более сложная вьюха, мы создаем для нее свою более сложную VM, а модели (функции) используем так же из wcf  (типа db.GetOrdersByPerson) ?
    14 ноября 2016 г. 22:59
  • Да. Могут появиться дополнительные модели, которые нужны для реализации бизнес-логики, но как правило основная часть моделей это слой доступа к данным, а клиентская бизнес-логика во VM.
    15 ноября 2016 г. 10:53
    Отвечающий