sfreaky
@sfreaky
Начинающий веб и софт разработчик

Как исправить nullreferenceexception в свойстве?

Есть свойство в окне
public FormulaViewModel ViewModel
        {
            get
            {
                return DataContext as FormulaViewModel ?? (DataContext = new FormulaViewModel()) as FormulaViewModel;
            }
            set
            {
                DataContext = value;
            }
        }

При дальнейшем использовании выбрасывается Null reference exception
private void Parameters_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            switch (e.Action)
            {
                case NotifyCollectionChangedAction.Add:
                    {
                        ViewModel.Parameters.Add(e.NewItems[0] as Parameter);
                        break;
                    }
                case NotifyCollectionChangedAction.Remove:
                    {
                        ViewModel.Parameters.Remove(e.OldItems[0] as Parameter);
                        break;
                    }
            }
        }

При дебаге, при наведение на свойство, чтобы посмотреть значение сначала выдаёт exception, а со второго раза выдаёт созданный объект. Как исправить?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
@DarkByte2015
Ради бога не надо все лепить в одну строку. Это не добавляет читабельности. А проблема скорее всего как раз из-за этого!

if (DataContext is null)
DataContext = new FormulaViewModel()

return DataContext;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Скорее всего, DataContext == null и исключение выкидывается при попытке доступа к DataContext.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы