XAML foreach () Ошибка Ссылка на объект не установлена ​​на экземпляр объекта - PullRequest
0 голосов
/ 20 января 2010

У меня странная ошибка XAML, которая появляется в Visual Studio. Я выделил его в код ниже, который вызывает это. Конструктор XAML выдает ошибку при использовании приведенного ниже преобразователя, однако приложение работает без ошибок. Мне нравится держать код в чистоте и удалять все предупреждения и ошибки, что мне нужно сделать, чтобы избавиться от этого?

 [ValueConversion(typeof(double?), typeof(double?))]
public class SummaryConverter : IValueConverter
{
    #region IValueConverter Members
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        CollectionViewGroup group = value as CollectionViewGroup ;
        if (parameter.ToString() == "FieldName")
        {
            double suUnits = 0;
            foreach (var t in group.Items) //This Line here causes error on XAML

            {
                suUnits +=  t.FieldName.GetValueOrDefault();
            }
            return suUnits;
        }
return "";
}

1 Ответ

2 голосов
/ 20 января 2010

Вы должны добавить нулевую проверку для группы, так как группа может быть нулевой, если объект, который был "преобразован", еще не был связан Это часто случается в конструкторе.

Я бы просто изменил это на:

public class SummaryConverter : IValueConverter 
{ 
    #region IValueConverter Members 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
        CollectionViewGroup group = value as CollectionViewGroup ; 
        if ((group != null) && (parameter.ToString() == "FieldName")) // Add null check here!
        { 
            double suUnits = 0; 
            foreach (var t in group.Items) //This Line here causes error on XAML 
             { 
                suUnits +=  t.FieldName.GetValueOrDefault(); 
            } 
            return suUnits; 
        } 
    return ""; 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...