首先,我知道这个问题已被多次询问,但这些提供的解决方案并没有帮助我。至少有一个对象必须实现IComparable,IComparable实现
我有以下Classes
:
public class PartType : IComparable<PartType>
{
public int CompareTo(PartType other)
{
return this.Type.CompareTo(other.Type);
}
// Some code
public int Id { get; set; }
public string Type { get; set; }
}
上述类在下面的类使用。
public class Part : IComparable<Part>
{
public int CompareTo(Part other)
{
return this.Material.CompareTo(other.Material);
}
public string Material { get; set; }
public PartType Type { get; set; }
}
现在,我有一个ObservableCollection<PartType>
我可以排序不会对string Type
任何问题(不需要能够做任何事情)。
我的其他ObservableCollection<Part>
我可以在string Material
上排序,但不能在PartType Type
上排序(对于使用“类型”两次的问题,感到抱歉)。
认真考虑重命名'Type'成员,因为可能与'System.Type'命名冲突 – decPL 2014-09-24 12:22:38
@Krowi - 目前还不清楚你在问什么。您的帖子不包含问题。 – user469104 2014-09-24 12:24:12
@decPL:你指的是什么样的命名冲突?即使像“PartType PartType”这样的属性也可以直接与该类型“碰撞”。 – 2014-09-24 12:25:08