0

ソースが監視可能なコレクションである collectionviewsource があり、そのように並べ替えています。

_viewSource.SortDescriptions.Add(new SortDescription() { PropertyName ="PropertyName", Direction = ListSortDirection.Ascending });

null値を持つリスト内のプロパティでソートしようとするまで、これはすべてうまく機能します。次に、「配列内の 2 つの要素を比較できませんでした」という InvalidOperationException が発生します。

null の問題を回避するには、独自の IComparer クラスを実装する必要がありますか?それともトリックがありませんか?

前もって感謝します..

4

1 に答える 1

1

custom sorterええ、null 値を処理するには、独自の実装を書き留める必要がありますIComparer。念のため、これを参照してください - IComparer sample


private class sortYearAscendingHelper : IComparer
{
   int IComparer.Compare(object a, object b)
   {
      car c1=(car)a;
      car c2=(car)b;
      if(c1.year == null && c2.year == null)
         return 0;
      if(c1.year == null && c2.year != null)
         return -1;
      if(c1.year != null && c2.year == null)
         return 1;
      if (c1.year > c2.year)
         return 1;
      if (c1.year < c2.year)
         return -1;
      else
         return 0;
   }
}
于 2012-05-17T17:11:29.417 に答える