MVVM을 사용하여 항목 이름을 변경하면 목록 상자를 다시 정렬 할 수 있습니까?항목의 세부 정보가 변경된 경우 목록 상자의 순서 새로 고침
내 목록 상자는 INotifyPropertyChanged를 상속받은 'People'클래스를 저장하는 Observable 컬렉션에 바인딩됩니다. 목록 상자는 속성 '이름'에 정렬되며 목록 상자의 항목 중 하나에 대해 '이름'값을 변경하면 값이 변경되었지만 목록 상자가 자동으로 자체 정렬되지 않음을 알 수 있습니다.
내가 다른 페이지로 이동하여 목록 상자를 돌아올 때
<ListBox ItemsSource="{Binding Source={StaticResource SortedItems}}"
SelectedItem="{Binding CurrentSelectedPerson}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
을 다음과 같이 초기 정렬이 CollectionViewSource
<CollectionViewSource x:Key="SortedItems" Source="{Binding PeopleList}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="Name"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
통해 수행하고 목록 상자에서 사용하는 올바른 순서를 가지고 ,하지만 사람의 이름을 변경하면 목록 상자가 새로 고쳐지지 않습니다. MVVM을 유지하면서 어떻게이 작업을 수행 할 수 있습니까?
첫 번째 링크의 링크를 통해 구현 한 솔루션을 얻을 수있었습니다. ObservableCollection에서 개체를 제거/추가했습니다. 가장 우아한 솔루션은 아니지만 새로운 인터페이스의 상속/구현을 필요로하지 않으므로 가장 깨끗하고 빠른 것으로 보입니다. – n00b