В последнее время у меня возникают проблемы с View Models (VM).
Точно так же, как этот парень Я пришел к выводу, что коллекции, которые мне нужно показать на моей виртуальной машине, обычно имеют тип, отличный от коллекций, представленных на моих бизнес-объектах.
Следовательно, между этими двумя типами должно быть двунаправленное отображение или преобразование. (Просто, чтобы усложнить ситуацию, в моем проекте эти данные являются «живыми», поэтому при изменении свойства они передаются на другие компьютеры)
Я могу почти справиться с этой концепцией, используя такую структуру, как Ферма , хотя я подозреваю, что где-то внутри будет неприятный сюрприз.
Необходимо не только преобразовывать объекты, но и синхронизировать эти две коллекции. (Просто для усложнения вещей я могу вспомнить случаи, когда коллекция виртуальных машин может быть подмножеством или объединением коллекций бизнес-объектов, а не просто синхронизацией 1: 1).
Я вижу, как выполнить одностороннюю «живую» синхронизацию, используя репликацию ObservableCollection или что-то вроде CLINQ.
Тогда возникает проблема: каков наилучший способ создания / удаления элементов?
Двунаправленная синхронизация, кажется, не на картах - я не нашел таких примеров, и единственный класс, который поддерживает что-либо удаленно, это ListCollectionView. Будет ли двунаправленная синхронизация разумным способом добавить обратно в коллекцию бизнес-объектов?
Кажется, что все образцы, которые я видел, никогда не касались этого "комплекса".
Итак, мой вопрос: как вы решаете это? Есть ли какая-нибудь техника для обновления коллекций моделей с ВМ? Каков наилучший общий подход к этому?