【问题标题】:How would you go about making a List<> comparable?您将如何使 List<> 具有可比性?
【发布时间】:2010-05-20 15:04:47
【问题描述】:

我正在使用 Telerik GridView,但在尝试对由 List 组成的列进行排序时遇到问题。在this 论坛条目中,Telerik 团队指出,无论 Silverlight 版本如何,网格都可以对 IComparable 进行排序和分组/过滤 IEquatable。在下面的 xaml 中,您将看到网格中的四列。 SVOs 专栏是我遇到的问题。 SVO 绑定到 List(ServiceOrder_DataViewModel)。由于 List 没有实现 IComparable 或 IEquatable,因此我无法对该列进行排序或分组/过滤。所以,我的问题是:如何创建一个实现 IComparable 和 IEquatable 的新 List 对象?我们确实有能够实现 IComparable 和 IEquatable 的逻辑,我只是​​不确定如何实现它。任何帮助将不胜感激!

<d:MVVMRadGridView.Columns>
    <telerikGridView:GridViewDataColumn Header="Case Id" UniqueName="Id" CellTemplate="{StaticResource CaseIDLinkCellTemplate}" DataMemberBinding="{Binding Id}" DisplayIndex="0" IsVisible="True" />
    <telerikGridView:GridViewDataColumn Header="SVOs" UniqueName="SVOs" CellTemplate="{StaticResource CaseServiceOrdersLinksCellTemplate}" DisplayIndex="1" IsVisible="True" TextWrapping="Wrap" />
    <telerikGridView:GridViewDataColumn Header="Type" UniqueName="Type" DataMemberBinding="{Binding Type}" DisplayIndex="2" IsVisible="True" TextWrapping="Wrap" />
    <telerikGridView:GridViewDataColumn Header="Status" UniqueName="Status" DataMemberBinding="{Binding Status}" DisplayIndex="3" IsVisible="True" />
</d:MVVMRadGridView.Columns>

【问题讨论】:

    标签: silverlight telerik ienumerable icomparable iequatable


    【解决方案1】:

    你可以扩展列表类并实现 IComparable 和 IEquatable 方法吗?

    public class ComparableList<T> : List<T>, 
       IComparable<List<T>>, IEquatable<List<T>> 
    {
        // Implement IComparable and IEquatable using your rules.
    }
    

    【讨论】:

    • 这正是我所需要的!谢谢!根据您的建议,我能够成功创建 ComparableList。 Telerik 网格仍然存在问题,但这是另一个问题 :)
    猜你喜欢
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多