PostSharp get_Property错误

时间:2017-07-21 14:39:31

标签: c# dictionary telerik postsharp radgridview

我正在使用Telerik的PostSharp和RadGridView。有些列使用DataTypeConverter自定义数据,我用它来加载Name类型AdvisableDictionary<Tkey, TValue>的属性中的值。

网格有过滤按钮,点击后会显示一个带有类似Excel的过滤选项的弹出窗口。

但是,当我单击此按钮时,出现错误Failed to compare two elements in the array.这种情况仅适用于具有此类数据的列。我对PostSharp没有多少经验,但我认为这是由PostSharp生成的。

以下是来自PostSharp的Output窗口的最后一行,在它抛出异常之前:

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'

我该怎么做才能解决此错误?

2 个答案:

答案 0 :(得分:0)

您可以创建一个类来继承AdvisableDictionary并实现IComparable。

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

HERE 1

HERE 2

因此,在FilterPopup的FilterConfirmed事件中,您需要更正过滤器描述符的值。

那就是它。

以下是prj示例。请看一下。享受c#编程的乐趣。

这是我的解决方案,需要尝试,成为老板,努力,快乐:)

答案 1 :(得分:-1)

我找到了一个解决方案:AdvisableDctionary没有实现用于对项目列表进行排序的IComparable。

我创建了一个类来继承AdvisableDictionary并实现IComparable并在过滤器弹出窗口的FilterConfirmed事件中。

我更正了过滤器描述符的值。