Свойство или индексатор нельзя передавать как параметр out или ref Xamarin.Forms (C #) - PullRequest
0 голосов
/ 28 апреля 2019

Я реализовал INotifyPropertyChanged в классе BaseViewModel следующим образом ...

BASEVIEWMODEL.CS:

  public class BaseViewModel : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }

        protected void SetValue<T>(ref T backingField, T value, [CallerMemberName] string propertyName = null)
        {
            if (EqualityComparer<T>.Default.Equals(backingField, value))
            {
                return;
            }

            backingField = value;
            OnPropertyChanged(propertyName);
        }
    }

С целью, чтобы все мои ViewModel наследовали от BaseViewModel и, таким образом, перерабатывали код, но я обнаружил следующую проблему при создании свойства, которое зависит от атрибута

Screenshoot

Как вы можете видеть, мой GymViewModel наследует от BaseViewModel, как я могу создать свойство, которое зависит от атрибута? Что я делаю неправильно? любая помощь для меня?

1 Ответ

0 голосов
/ 28 апреля 2019

Компилятор выдает ошибку, потому что вы сделали gimnasios свойством вместо поля:

private ObservableCollection<Gimnasio> gimnasios { get; set; }

Как говорит компилятор, вам не разрешено передавать свойство в качестве параметра ref.

Вы, вероятно, намеревались gimnasios быть полем поля для свойства Gimnasios, поэтому замените { get; set; } точкой с запятой:

private ObservableCollection<Gimnasio> gimnasios;
...