我目前正在实施遵循MVVM样式编码的CAN监视器。 它有各种标题,如ID,TimeStamp,Direction ...... 日志记录功能设计用于超过50000行跟踪,因此通过OrderBy函数进行排序对我来说太慢了。在正确的位置迭代并添加每个新消息也是不可行的。
现在我设计了Sort via CollectionViewSource 。但问题是我一次只能决定一个参数。我需要根据用户在标题上的点击次数对sort参数进行动态更改。
<CollectionViewSource IsLiveSortingRequested="True" x:Key="Items" Source="{Binding MonitorList}" >
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName= "CanCobIdString" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
。 。
<ItemsControl Name="ItemsControl_Monitor" Grid.Column="0" ItemsSource="{Binding Source={StaticResource Items}, UpdateSourceTrigger =PropertyChanged}" ItemTemplate="{StaticResource CanMessageTemplate2}" VirtualizingPanel.IsVirtualizing="true"
我尝试绑定PropertyName,但我相信这不是正确的方法。是否有其他方法可以根据用户点击更改PropertyName。 (我只需要能够在运行时更改PropertyName字符串)