2010-01-20 3 views
0

J'ai une erreur XAML étrange qui apparaît dans Visual Studio. Je l'ai isolé au code ci-dessous qui le cause. Les erreurs du concepteur XAML lorsque le convertisseur ci-dessous est utilisé, mais l'application fonctionne très bien sans erreur. J'aime garder le code rangé et enlever tous les avertissements et les erreurs, que dois-je faire pour se débarrasser de celui-ci?XAML foreach() Erreur Référence d'objet non défini sur une instance d'un objet

[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 ""; 
} 

Répondre

2

Vous devez ajouter une vérification null pour le groupe, car le groupe peut être nul si l'objet en cours de "conversion" n'a pas encore été lié. Cela arrive souvent dans le concepteur.

Je voudrais juste changer cela:

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 ""; 
} 
+0

Il est le « inconvénient » de l'utilisation de l'opérateur 'de as'. Aucune exception n'est levée pour une distribution en échec. –

+0

Merci beaucoup! Cela a fonctionné !!! – Traci

Questions connexes