У меня есть ShellViewModel, содержащий три свойства типа ViewModel:Держите SelectedItem при переключении между экранами
- Один публичный
CurrentScreen
собственности; - Два частных:
FirstViewModel
иSecondViewModel
объектов недвижимости.
FirstViewModel
имеет ObservableCollection<Foo> FooCollection
и SelectedFoo
свойство типа Foo
. Это двухстороннее связан с DataGrid в View, который является DataTemplate:
<DataGrid x:Name="setupsSensoresDataGrid"
ItemsSource="{Binding Source={StaticResource FooCollectionViewSource}}"
SelectedItem="{Binding SelectedFoo, Mode=TwoWay}">
....
Проблема заключается в том, когда я нахожусь на первом экране и выберите элемент, когда я иду на второй экран и вернуться , выбор будет потерян.
Я хотел бы знать, как сохранить выбор (как визуально, так и логически) при переключении с одного экрана на другой.
Мне кажется, что привязка данных TwoWay отменяет выбор SelectedFoo
при перемещении View (DataTemplate).
Возможный дубликат (но с несколько неэлегантным решением IMO): http://stackoverflow.com/questions/8808076/how-to-preserve-the-full-state-of-the-view-when-navigating-between -views-in-an-m – heltonbiker
Можете ли вы представить свой код модели просмотра? Возможно, вы создаете новую модель представления при каждом изменении шаблона данных, поэтому ** сбрасывает ** свойство 'SelectedFoo'? –