Лучший отвечающий
WPF + WCF + MVVM

Вопрос
-
Самостоятельно не смог найти понятный для меня пример приложения 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- Изменено DevingAs 14 ноября 2016 г. 14:35
- Предложено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 16 ноября 2016 г. 14:04
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 5 декабря 2016 г. 9:43
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- Изменено DevingAs 14 ноября 2016 г. 14:35
- Предложено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 16 ноября 2016 г. 14:04
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 5 декабря 2016 г. 9:43
14 ноября 2016 г. 14:17 -
Спасибо, я правильно понимаю , что model описывать не нужно, так как она в WCF. Даже если нам нужна какая-то более сложная вьюха, мы создаем для нее свою более сложную VM, а модели (функции) используем так же из wcf (типа db.GetOrdersByPerson) ?14 ноября 2016 г. 22:59
-
Да. Могут появиться дополнительные модели, которые нужны для реализации бизнес-логики, но как правило основная часть моделей это слой доступа к данным, а клиентская бизнес-логика во VM.15 ноября 2016 г. 10:53Отвечающий