В настоящее время у меня три модели в EF (House, Room, Item).Связь MVVM между режимами просмотра с различными DTO
public class House
{
property int ID { get; set; }
property string Name { get; set; }
property List<Room> Rooms { get; set; }
}
public class Room
{
property int ID { get; set; }
property string Name { get; set; }
property List<Item> Items { get; set; }
}
public class Item
{
property int ID { get; set; }
property string Name { get; set; }
}
В моем UI У меня есть Treeview и область отображения, чтобы показать пункты, дополнительные детали для модификации, когда я дважды щелкните элемент в TreeView.
Мой TreeView для повышения производительности вызывает WebService, который возвращает следующие DTO/с
public class LayoutItemDTO
{
property int ID { get; set; }
property string Name { get; set; }
property List<LayoutItemDTO> Children { get; set; }
}
эти DTO-х сопоставляются построены с помощью запроса к базе данных по модели дома, комнаты, пункт.
Теперь, когда пользователь дважды щелкает по элементу дома в древовидной структуре, он вызывает веб-сервис, чтобы вернуть модель дома с коллекцией комнат, чтобы пользователь мог добавлять/удалять комнаты, а когда они закрывают представление, он запрашивает спасти.
То же самое происходит, когда пользователь дважды щелкает по комнате (например, добавляет/удаляет предметы в комнату).
Все это отлично работает, не учитывая сохранение дерева и открытого представления, поэтому, если они меняют имя комнаты или добавляют/удаляют элемент, который я хочу отразить в древовидной структуре в памяти, и возвращать, если они отменяют изменения сверху близко.
В настоящее время я сделал это с помощью агрегатора событий, но кажется, что это нечеткие вызовы для каждого действия, если бы я мог просто использовать привязку WPF, все будет работать мгновенно.
Причина, по которой эти модели не используются в древовидной структуре, объясняется тем, что эти модели имеют намного больше информации о них, чем показано, при получении всего этого возникает проблема с производительностью.
Привет спасибо за ответ мы имеем ViewModels для этих DTO-х годов так TreeView имеет layoutviewmodel и вид, когда это открыто имеет houseviewmodel с вложенными режимами просмотра для комнат и элементами, которые они построены после того, как пользователь дважды щелкнул по дереву, и второй вызов службы был сделан. Проблема возникает, когда мы меняем любой из этих элементов в древовидной структуре или в открытое представление с разными режимами просмотра позади них. Нам нужен способ как-то иметь общую взаимосвязанную модель обзора между двумя – jclarkson