2017-07-21 11 views
1

TelerikのPostSharpとRadGridViewを使用しています。一部の列には、AdvisableDictionary<Tkey, TValue>というNameという名前のプロパティから値をロードするために使用しているDataTypeConverterを使用してカスタムデータがあります。PostSharp get_Propertyエラー

グリッドにはフィルタボタンがあり、クリックすると、Excelのようなフィルタリングオプションを持つポップアップウィンドウが表示されます。

ただし、このボタンをクリックすると、エラーが発生します。Failed to compare two elements in the array.これは、このタイプのデータを持つ列に対してのみ発生します。 PostSharpの経験はあまりありませんが、これはPostSharpによって生成されたと思います。それが例外をスローする前にここで

はPostSharpからの出力ウィンドウからの最後の行は、以下のとおりです。

The thread 0x3964 has exited with code 0 (0x0). 

The thread 0x364 has exited with code 0 (0x0). 

Step into: Stepping over non-user code 'TranslatableObject.get_Name' 

Step into: Stepping over non-user code 'TranslatableObject.<Name>c__Binding1.GetValue' 

Step into: Stepping over non-user code 'TranslatableObject.<Name>c__Binding1.get_LocationInfo' 

Step into: Stepping over non-user code 'TranslatableObject.<Name>c__Binding.GetValue' 

が、私はこのエラーを解決するために何ができるのでしょうか?

+0

あなたがここにスタックトレースと例外の完全なメッセージを貼り付けてくださいもらえますか?この動作を再現する最小限の例を共有すると、その原因を特定するのにも役立ちます。 –

+0

ありがとう! [Here](http://www.telerik.com/account/ClientsFiles/2e7a5d04-c0cc-4c2f-a835-8531ead667c4_ExcelLikeFiltering.zip?accesskey=76010F0054C6AF950F4458F5A0E88AD6643EF13E&expires=636369830483897924)は、サンプルプロジェクトです。私は以下の答えのような解決策を見つけました。 – Tim

答えて

-1

解決策を見つけました。 AdvisableDctionaryは、項目のリストをソートするために使用されるIComparableを実装しません。 AdvisableDictionaryを継承し、IComparableを実装するクラスを作成し、FilterPopupのFilterConfirmedイベントでフィルタ記述子の値を修正しました。

0

AdvisableDictionaryを継承し、IComparableを実装するクラスを作成できます。

public class AdvisableDictionary: IComparable 
{ 
    //here add the code from your heart 
} 

HERE 1

HERE 2

あなたは、フィルタ記述子の値を修正する必要がFilterPopupのFilterConfirmedイベントで、だから、そのシンプル。

これだけです。

ここにはサンプルprjがあります。見てください。楽しみながらC#のプログラミングを楽しんでください。

それは私の解決策だと、幸せになるために、努力して、ボスであることを、しようとする必要があります:)

関連する問題