Класс команд не работает — реализация ICommandC#

Место общения программистов C#
Ответить
Anonymous
 Класс команд не работает — реализация ICommand

Сообщение Anonymous »

Я работаю над проектом WPF, используя шаблон MVVM. Мой проект разделен на три отдельных проекта/пространства имен, чтобы обеспечить четкое разделение задач:
  • : содержит классы данных (например, class.cs)
  • Код: Выделить всё

    ViewModel
    : содержит реализацию команды и модели представления (например, VMClass.cs, VMMainWindow.cs)
  • (основной проект): пользовательский интерфейс XAML, который ссылается на проект ViewModel
Проблема
Несмотря на то, что мой DataContext правильно установлен в XAML и привязки не показывают никаких ошибок в выходных данных, логика внутри моей команды никогда не выполняется.
Вот мой код:

Код: Выделить всё

// Inside ViewModel Project
public class Command : ICommand
{
private Action action;
public Command(Action action) { this.action = action; }

public bool CanExecute(object parameter) => true;
public event EventHandler CanExecuteChanged;

public void Execute(object parameter)
{
// I suspect this is the culprit:
if (parameter != null)
{
action(parameter);
}
}
}
В разметке представления XAML я связал модели представления как пространство имен и установил DataContext следующим образом: Вопросы
  • Плохо ли проверять это, если (параметр != null) в общем классе Command?
  • Как мне обрабатывать случаи, когда CommandParameter не указан?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»