Мені потрібна допомога з приводу MVVM.
Я створив ViewModel, який розкриває дані та команди, які будуть відображатися у списку перегляду у перегляді з ім'ям A.
Ця ViewModel також використовується у вигляді B. З цієї точки зору, я просто повинен виставити деякі властивості і не команди, але мені довелося створити ще 2 властивості.
Чи краще створити більш конкретні ViewModel для View B, навіть якщо це стосується одного і того ж об'єкта?
Відповіді:
0 для відповіді № 1Важко відповісти. Але я можу сказати вам, що ми робимо для нашої програми. У нас є один viewmodel, який більш-менш є незалежним, він просто функціонує як обгортка для наших бізнес-даних і містить всі речі, які використовуються майже у всіх частинах, де ця модель показана. Тепер для частини перегляду ми маємо дуже специфічні моделі перегляду. Як ProjectTreeViewModel або SearchResultViewmodel, з відповідними переглядаючими елементами для обох. Модель елемента view не потребує повторної реалізації всієї логіки, вона просто потребує узгодження моделі загального перегляду моделі. Щоб дати кращу аналогію:
Якщо у вас є File
, Drive
і Folder
моделі. Ви б створили a FileViewModel
, DriveViewModel
і FolderViewModel
. Але тільки один ExplorerItemViewModel
. Для цього потрібно лише надати властивість, щоб розкрити базову модель перегляду. Решта залежить від шаблонів даних.
7 для відповіді № 2
Я б запропонував композицію, маю дві моделі переглядуякі мають властивість, що містить модель перегляду, яка містить загальні властивості. Дві моделі перегляду повинні мати тільки свої специфічні властивості та команди.