Я использую C # WPF, следуя шаблону проектирования MVVM.В настоящее время мой вид имеет ListView
, который содержит несколько столбцов и строк (то есть ListViewItems
).
ViewModel предоставляет коллекцию ObservableCollection<Person>
(как показано ниже), к которой привязывается View.
public ObservableCollection<Person> People
{
get
{
return _people;
}
set
{
// new value?
if( value != _people )
{
// Set
_people = value;
// Notify
OnPropertyChanged( "People" );
}
}
}
, а здесь приведен фрагмент привязки
<ListView ItemsSource="{Binding People}" ... >
<!-- Omitted -->
</ListView>
InПредставление, которое пользователь может щелкнуть по заголовку столбца, и ListView
будет соответственно отсортировано.Проблема в том, что некоторые из логики и команд в ViewModel чувствительны к порядку элементов, и когда ListView
сортируется по определенному столбцу, базовая коллекция People
в ViewModel не отражает порядок, в котором находится пользователь.
Любая подсказка о том, как синхронизировать отсортированный ListViewItems
в ListView
с базовым ObservableCollection<Person>
?
Редактировать Уже пробовал Mode = TwoWay onListView ItemsSource, который не работал.