Учитывая этот код....
public class CalibrationViewModel : ViewModelBase
{
private FileSystemWatcher fsw;
public CalibrationViewModel(Calibration calibration)
{
fsw = new FileSystemWatcher
{
Path = @"C:\Users\user\Desktop\Path\ToFile\Test_1234.txt",
Filter = @"Test_1234.txt",
NotifyFilter = NotifyFilters.LastWrite
};
fsw.Changed += (o, e) =>
{
var lastLine = File.ReadAllLines(e.FullPath).Last();
Dispatcher.BeginInvoke((Action<string>) WriteLineToSamplesCollection, lastLine); //line that cites error
};
}
private void WriteLineToSamplesCollection(string line)
{
// do some work
}
}
Почему я получаю сообщение об ошибке "Не удается получить доступ к нестационарному методу BeginInvoke в статическом контексте"?
Я просмотрел несколько других примеров в SE и большинство цитировал попытку использовать поле до создания объекта, как если бы они пытались использовать статическое поле нестатичным образом, но я не понимаю, что это такое это мой код, вызывающий ту же ошибку.
Наконец, что я могу сделать, чтобы исправить эту конкретную проблему/код?
Обновление: Исправлен заголовок, чтобы отразить проблему с помощью "метода", а не "свойства". Я также добавил, что класс реализует ViewModelBase.