PostSharp get_Property错误

问题描述:

我正在使用Telerik的PostSharp和RadGridView。某些列使用DataTypeConverter来定制数据,我正在使用它来从AdvisableDictionary<Tkey, TValue>类型的名为Name的属性中加载值。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

我想出了一个解决方案。 AdvisableDctionary不实现用于排序项目列表的IComparable。我创建了一个继承AdvisableDictionary并实现IComparable的类,并在FilterPopup的FilterConfirmed事件中更正了过滤器描述符的值。

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

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

HERE 1

HERE 2

因此,它在FilterPopup的FilterConfirmed事件简单,你需要正确的过滤器描述符的值。

就是这样。

以下是样本prj。请看一下。玩得开心享受C#编程。

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