Hi Marco,
you can use 2 different CollectionViewSources and sort each View (of CollectionViewSource) with other SortDescriptions like in following demo:
<Window x:Class="WpfApp1.Window025"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp025"
mc:Ignorable="d"
Title="MarcoHandl-3158_20220613" Height="450" Width="400">
<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>
<StackPanel>
<ListView ItemsSource="{Binding View}" Height="200">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding Id}" Width="100"/>
<GridViewColumn Header="Time" DisplayMemberBinding="{Binding Time}" Width="200"/>
</GridView>
</ListView.View>
</ListView>
<ListView ItemsSource="{Binding DataView}" Height="200">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding Id}" Width="100"/>
<GridViewColumn Header="Time" DisplayMemberBinding="{Binding Time}" Width="200"/>
</GridView>
</ListView.View>
</ListView>
</StackPanel>
</Window>
ViewModel:
using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Windows;
using System.Windows.Data;
namespace WpfApp025
{
public class ViewModel
{
AcController acController;
public ViewModel()
{
//creating the singelton object
acController = AcController.CreateInstance();
//Create the view
cvsView.Source = acController.AlarmList;
//Sort view
cvsView.View.SortDescriptions.Add(new SortDescription("Time", ListSortDirection.Ascending));
//connect view to ListView
// -> Binding!
cvsDataView.Source = acController.AlarmList;
DataView.SortDescriptions.Clear();
SortDescription sd = new SortDescription("Id", ListSortDirection.Descending);
DataView.SortDescriptions.Add(sd);
//dataView.Refresh();
}
private CollectionViewSource cvsView = new CollectionViewSource();
public ICollectionView View { get => cvsView.View; }
private CollectionViewSource cvsDataView = new CollectionViewSource();
public ICollectionView DataView { get => cvsDataView.View; }
}
internal class AcController
{
...
}
public class Data
{
public int Id { get; set; }
public DateTime Time { get; set; }
}
}