/ / ViewModel спільно використовує множинні огляди - c #, .net, wpf, mvvm

ViewModel спільно використовують кратні огляди - c #, .net, wpf, mvvm

Мені потрібна допомога з приводу 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

Я б запропонував композицію, маю дві моделі переглядуякі мають властивість, що містить модель перегляду, яка містить загальні властивості. Дві моделі перегляду повинні мати тільки свої специфічні властивості та команди.