Вы создаете экземпляр класса ExcelViewModel
в XAML, используя конструктор по умолчанию. Ваш CopyCommand
инициализируется только во втором конструкторе с параметром.
Измените это на это, и оно должно работать:
public ExcelViewModel()
{
SourcePath = @"\\test\\2019";
CopyCommand= new RelayCommand(CopyExcel);
}
private readonly IExcelService fileService;
public ICommand CopyCommand{ get; private set; }
public ExcelViewModel(IExcelService fileService)
{
this.fileService = fileService;
}
Обновление:
Всегда полезно вызывать конструктор по умолчанию из любых специальных конструкторов, как предложил Рэнд Рэндом.
Это не решит вашу проблему (поскольку ваше представление XAML вызывает конструктор по умолчанию)!
Но для справки это будет выглядеть так:
public ExcelViewModel()
{
SourcePath = @"\\test\\2019";
CopyCommand= new RelayCommand(CopyExcel);
}
private readonly IExcelService fileService;
public ICommand CopyCommand{ get; private set; }
public ExcelViewModel(IExcelService fileService) : this()
{
this.fileService = fileService;
}
Кредиты отправляются в Rand Random.