我正在尝试使用WPF Toolkit DataGrid进行排序。我的DataGrid行是视图模型的实例。行的视图模型为每列显示视图模型。每列都是模板化为不同用户控件的数据。这就是我的DataGrid的列声明:
<tk:DataGrid.Columns>
<tk:DataGridTemplateColumn Header="Name" MinWidth="150" Width="150">
<tk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding Path=NameViewModel}"/>
</DataTemplate>
</tk:DataGridTemplateColumn.CellTemplate>
</tk:DataGridTemplateColumn>
<tk:DataGridTemplateColumn Header="Data Dependencies" MinWidth="350" Width="Auto">
<tk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ContentPresenter Content="{Binding Path=DependenciesViewModel}"/>
</DataTemplate>
</tk:DataGridTemplateColumn.CellTemplate>
</tk:DataGridTemplateColumn>
</tk:DataGrid.Columns>
Name
绑定到视图模型,该模型是使用用户控件模板化的数据,该控件将名称显示为文本块。它还显示一些其他图形信息,这就是它显示在用户控件中的原因。
这样做的问题是我无法对Name
列进行排序。我希望在公开Name视图模型的行视图模型上实现IComparable<T>
可以解决问题,但它看起来不像WPF数据网格关心它实现IComparable<T>
。
有没有人对如何最好地解决这个问题有任何建议?