0
我有datagrid绑定到ObservableCollection。其中一个柱体与物体本身相连,而不是一个属性:silverlight datagrid:绑定到对象的排序列
<sdk:DataGrid
ItemsSource="{Binding PersonList}"
AutoGenerateColumns="False">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn
Binding="{Binding}"
Header="Person"
SortMemberPath="FirstName"
/>
<sdk:DataGridTextColumn
Binding="{Binding FirstName }"
Header="FirstName"
/>
<sdk:DataGridTextColumn
Binding="{Binding LastName }"
Header="LastName"
/>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
我想使列绑定到对象本身可排序。我认为这足以让班级人员实现IComparable。但似乎这还不够:
public class Person : IComparable<Person>
{
public string FirstName { get; set; }
public string LastName { get; set; }
public override string ToString()
{
return string.Format("{0} {1}", FirstName, LastName);
}
public int CompareTo(Person other)
{
return FirstName.CompareTo(other.FirstName);
}
}
其实我贴的代码只是一个例子,没有意义。真实场景太复杂,无法发布,所以我将其缩减为这个例子。在真实场景中,我有一个绑定到整个对象的列(不仅仅是对象的属性),而且我想根据类的CompareTo方法中实现的某些逻辑对此列进行排序。 – user1472131