PostSharp get_Property 错误

PostSharp get_Property error

我正在使用 Telerik 的 PostSharp 和 RadGridView。某些列具有使用 DataTypeConverter 的自定义数据,我使用它从 AdvisableDictionary<Tkey, TValue>.

类型的名为 Name 的 属性 加载值

网格有过滤器按钮,单击后会显示一个弹出窗口 window,其中包含类似 Excel 的过滤选项。

但是,当我单击此按钮时,我收到一条错误消息,提示 Failed to compare two elements in the array. 这仅适用于具有此类数据的列。我对 PostSharp 没有太多经验,但我认为这是由 PostSharp 生成的。

这是 PostSharp 的输出 window 的最后几行,在它抛出异常之前:

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'

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

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

我创建了一个 class 来继承 AdvisableDictionary 并实现 IComparable 并且在 Filter Popup 的 FilterConfirmed 事件中。

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

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

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

HERE 1

HERE 2

所以很简单,您需要在 FilterPopup 的 FilterConfirmed 事件中更正过滤器描述符的值。

就是这样。

这是一个示例 prj。请看一下。尽情享受 C# 编程吧。

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