Заполнение из SQLite элемента ListBox в зависимости от выбора в другом ListBox - C# WPF - Ответ 17332211

VluDs

, я смотрю сейчас ваше решение, и вижу что оно сделано "через пень колоду". По хорошему его нужно полностью менять, так как у вас по факту нет никакого MVVM - функционал различных слоёв разбросан хаотично.

Но с другой стороны я понимаю, что у вас, скорее всего, нет времени на полную перестройку всего Решения.

Не знаю даже как правильно вам поступить.

Если у вас нет требований по MVVM, то можно объединить навигатор и все VM в одной "божественной" сущности. Это плохо. Но позволит вам достаточно быстро завершить проект. Только никому не говорите, что это я такое посоветовал...

Если время терпит и нужна правильная реализация MVVM, то тогда нужно во много изменить реализацию. В первую очередь, вынести Model и ViewModel в отдельные сборки (проекты), которые не зависят от View. Иначе вы так и продолжите клепать костыль за костылём.

Добавлено через 6 минут

Почему RoutedCommand: для правильного открытия дочернего окна нужна информация о родительском окне и параметре (в данном случае редактируемой сущности). С помощью обычной ICommand такую информацию не передашь.

Так же открытие окна или смена представления в регионе окна никак не зависят и не влияют на состояние Модели, поэтому и не могут относится к функции ViewModel. Например, сейчас для редактирования сущности вы открываете новое Окно. Но вы передумали и решили делать это в регионе (странице) общего окна. Вот такое изменение никоим образом не должно приводить к необходимости внесения изменений в код ViewModel и тем более Model. А у вас без изменениями ViewModel не получится это реализовать. Следовательно о реализации MVVM не приходится говорить.

Вернуться к обсуждению:

Заполнение из SQLite элемента ListBox в зависимости от выбора в другом ListBox C# WPF