0

我在一个主要工作的 MVC4 项目中有一个 Silverlight5 PivotViewer,但是有一个问题。模型中的一些属性被定义为 List。

[DataContract]
public class PTE_Test
{
    [DataMember]
    public string Name { get; set; }
    [DataMember]
    public string Description { get; set; }
    //...
    [DataMember]
    public List<string> Tags { get; set; }
    [DataMember]
    public List<string> Practices { get; set; }
    [DataMember]
    public List<string> SpecificAreas { get; set; }
}

我希望它们用于过滤和搜索,这实际上效果很好。但是基于它们进行排序是没有意义的(您对列表中的哪个字符串进行排序?)。但是,它们不仅出现在排序列表中,而且如果用户选择其中之一,则会引发 ManagedRuntimeError 异常。

有谁知道控制哪些属性出现在排序列表中的方法?

谢谢!

4

1 回答 1

2

不幸的是,您无法将排序与过滤器分开。要么全有,要么全无。

您至少可以通过获取您的 List 并将其更改为自定义对象并实现 IComparable 接口来解决用户遇到的错误。我在这里发布了一篇关于这个主题的博客文章:http: //tonychampion.net/blog/index.php/2012/02/pivotviewer-multi-valued-properties/

于 2012-05-15T04:16:32.857 回答