Я работаю с MVVM и сталкиваюсь со следующей проблемой при использовании многих похожих команд.
Я хочу сделать много кнопок, которые используются для показа книг разных категорий.
Модель представляет собой некоторые данные о книге, скажем,
class book
{
string name;
string author;
.....
.....
string category;
}
Список книг сохраняется. Пользовательский интерфейс используется для просмотра книг разных категорий. Поэтому кнопки для каждой категории созданы. Например:
Buttons:
Comic
Social
Academic
Science
Leisure
Political
Cartoon
Gambling
Magazine
All
Есть около 10 кнопок, которые я должен создать. (9 категорий, 1 для просмотра все)
В MVVM каждая кнопка имеет свою команду. Исходя из этого, во ViewModel будет 10 команд. Тем не менее, кодирование 9 его очень похоже с единственным отличием в категории.
Итак, я хотел бы спросить, есть ли какие-либо предложения / методы, чтобы сделать его более экономящим код?
У меня есть идея. То есть объединить все команды в одну. Однако этот метод требовал, чтобы View (Xaml) передавал CommandParameter в каждой кнопке одной команде, чтобы различать разные категории. Это сделает XAML более сложным и увеличит уровень связи с помощью ViewModels / Business logic.
Итак, есть ли более лаконичный способ?