В главном окне моего WPF-приложения есть много кнопок. Команды этих кнопок должны иметь одну и ту же реализацию/функцию, но в зависимости от того, какая кнопка была нажата, файл/путь, по которому функция обращается к изменениям. Как определить, какая кнопка была нажата из ViewModel с помощью CommandParameter? Как я могу использовать этот параметр в методе Dowork? В этом примере CommandParameter Button1 называется «button1», а Button2 - «button2».Передайте командный параметр в Backgroundworker в ViewModel WPF
Ее это код BackgroundWorker в моей ViewModel:
public ViewModel()
{
...
this.instigateWorkCommand = new DelegateCommand(o => this.worker.RunWorkerAsync(), o => !this.worker.IsBusy);
this.worker = new BackgroundWorker();
this.worker.DoWork += this.DoWork;
this.worker.ProgressChanged += this.ProgressChanged;
this.worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_Completeted);
this.worker.WorkerReportsProgress = true;
}
Ее это код DoWork в моем ViewModel:
private void DoWork(object sender, DoWorkEventArgs e)
{
// if (parameter.ToString().contains("button1")...
// if (parameter.ToString().contains("button2")...
}
Посмотрите здесь http://stackoverflow.com/questions/5566323/wpf-how-to-know-the-current-button-pressed-among-multiple-buttons – Ggalla1779