Итак, как вы выводите на экран комплексные агрегированные ViewModels , чьи модели связаны друг с другом?
НЕТ, ученик wpf никогда не говорил об этом, угадайте, почему это невозможно ...
Как вы думаете, это правда?
Не понимаешь меня?
Посмотрите: A CustomerViewModel имеет много OrderViewModel и много ProductViewModel .
У вас есть 3 рабочих пространства для ввода новых данных для всех 3 ViewModels И у вас есть 3 списка / combobo / datagrid для множественного выбора коллекций типа => customerVM s, orderVM
s и productVM`s.
То, что пользовательский интерфейс имеет смысл для пользователя, которому не нужно отключать / включать рабочее пространство при добавлении каждого нового клиента / заказа / продукта. Что является плохим пользовательским опытом, как вы выполняете это типичное требование LOB-приложения?
EDIT:
У вас в MVVM есть Коллекция типа WorkSpace.
Каждый ViewModel может быть рабочим пространством, потому что он является производным от класса WorkSpace.
Коллекция Workspaces связана с примером ItemsSource afair josh smith.
Заявление : Я хочу использовать зрелые пользовательские интерфейсы форм goold без закрываемых моделей представления ...
Проблема : MVVM может работать только с рабочими пространствами (закрываемый не имеет значения ...), потому что экземпляр CustomerviewModel должен быть уже создан, а затем добавлен в коллекцию рабочих пространств, привязанную к itemsControl и датированную в зависимости от типа данных.
Если бы у меня не было рабочих областей, в которых хранятся мои экземпляры ViewModel, я бы не смог их датировать, потому что ViewModel в MVVM принимает модель в качестве параметра конструктора.
DataTemplating UserControl с DataType CustomerViewModel вызовет исключение в XAML!
Теперь посмотрите на мой пользовательский интерфейс, который я хочу иметь: у меня нет рабочих пространств, но 3 ViewModels = 3 UserControls с датой, означающей 3 раза большой взрыв ...
Теперь вы понимаете, почему я не люблю MVVM? Это плохо продумано, и я ищу решение ...
Конечно, я мог бы поместить свои ViewModels или DataFormulars в ObservableCollection, но я не хочу, чтобы они были связаны с ItemsControl. Я хочу, чтобы эти 3 UserControl имели определенную позицию в моем макете. с ItemsControl у вас есть тупая очередь, где новый Dataformular просто добавляется и переносится, если он не помещается в существующее пространство. Это все мусор дизайн макета / плохой интерфейс.
Вы меня понимаете?