Итак, как вы показываете сложные агрегированные ViewModels, у моделей которых есть отношения друг с другом?MVVM - несколько рабочих мест в рабочей области, кажется, не имеют смысла
NO МОФ ученик никогда не говорил об этом, думаю, почему его не возможно ...
Как вы думаете, это правда?
Не поймите меня?
Смотри: A CustomerViewModel имеет много OrderViewModel и тех, кто много ProductViewModel.
Вы 3 Workspaces ввести новые данные для всех 3 ViewModels И у вас есть 3 ListBoxes/combobo/DataGrid к MULTISELECT Коллекции типа => customerVM s, orderVM
с и productVM`s.
Что пользовательский интерфейс имеет смысл для пользователя, который ему не нужно отключать/на рабочем месте, каждый новый клиент/заказ/продукт добавляется, что плохой пользовательский опыт, как вы делаете это типичное требование приложения LOB?
EDIT:
Вы в MVVM Коллекцию типа WorkSpace. Каждая ViewModel может быть рабочей областью, потому что она происходит из класса WorkSpace. Коллекция Workspaces привязана к примеру ItemsSource afair josh smith.
Заявление: Я хочу использовать Гулд зрелые окна формирует пользовательские интерфейсы не закрывающиеся ViewModels ... Проблема: MVVM может работать только с рабочими пространствами (закрываемой не имеет значения, ...), так как CustomerviewModel уже должен быть создан а затем добавляется в коллекцию рабочих пространств, связанную с элементами itemsControl и datatemplated в зависимости от типа данных.
Если бы у меня не было рабочих пространств, в которых хранятся экземпляры ViewModel, я не мог бы их привязать, потому что ViewModel в MVVM принимает модель как параметр конструктора. DataTemplating UserControl с DataType CustomerViewModel выкинет исключение в XAML!
Теперь посмотрит на моем UI я хочу иметь: У меня нет рабочих областей, но 3 ViewModels = 3 UserControls datatemplated средства 3 раза в больших взрывах ...
Вы теперь, почему я не люблю MVVM? Его не очень хорошо, и я ищу решение ...
Конечно, я мог бы поместить мои ViewModels aka DataFormulars в ObservableCollection, но я не хочу, чтобы они привязывались к ItemsControl. Я хочу, чтобы эти 3 UserControl имели определенную позицию в моем макете. с ItemsControl у вас есть глупая очередь, где новый Dataformular просто добавлен и завернут, если он не вписывается в существующее пространство. То есть дизайн компоновки мусора/плохой интерфейс.
Вы меня поняли?
Конечно, окно может иметь несколько элементов управления, связанных с типом данных viewmodel. Это не то, о чем я говорю. My Master-Detail с продуктом/клиентом/заказ - -ViewModelcollection отлично работает без обходного пути, используя некоторую систему сообщений. Просто используйте IsSynchronizedTocurrentItem в своих VM-Collections и привяжите их, все переключится нормально. Подробнее о редактировании см. Выше. – msfanboy
вы знаете, что, я думаю, я был частично неправ. Сегодня я проверил Чинч, который представляет собой рамки mvvm Sacha Barber, и он внезапно открыл глаза. Он не использует конструктор в своей модели CustomerViewModel. Я знаю, почему ;-) Он загружает связанные заказы и продукты LAZILY. Я делаю это EAGERLY привязаны к моей combobox с привязкой к AllCustomersViewModel. Проблема заключается в ленивой/нетерпеливой загрузке связанных данных. Ваш правый Дэн, если я использую ленивую загрузку, я запускаю выбранный CustomerViewModel в другое место через Messenger, чтобы отображать связанные OrderViewModels в DataGrid, например. – msfanboy
Я вижу первый абзац, который вы написали как решение, потому что вы посоветовали то, что я видел в Chinch, и похоже, что я меняю свою стратегию загрузки, чтобы я мог использовать конструктор ViewMOdels, hurrraaayy XD – msfanboy