Вы пытались выбрать метод и нажать «Отладка»? или вы пытались выполнить целые тесты, а затем выбрать свой метод правой кнопкой мыши и отладки?
Вы попытались реализовать INotifyPropertyChanged
в Вашем viewmodel и затем повышаете PropertyChanged
событие, когда эти SelectedItem
установлен?
, Если это сам по себе не зафиксирует его, то Вы будете в состоянии вручную повысить PropertyChanged
событие сами при навигации назад к странице, и этого должно быть достаточно, чтобы заставить WPF перерисовывать себя и показывать корректный выбранный пункт.
Я заметил это поведение прежде также. Я заметил, что свойство SelectedIndex не вызывает ту же ошибку. Если можно реструктурировать ViewModel, чтобы представить индекс выбранного пункта и связать, в который, необходимо быть хорошими для движения.
Это мог быть способ, которым Вы применяете DataContext к Странице. В WPF каждый раз Вы перешли к Странице, все повторно инициализируется, конструктор становится вызванным, загруженные методы, все. таким образом, при установке DataContext в Представлении, Вы будете несомненно сдувать тот SelectedItem, который выбрал пользователь. Чтобы избежать, чтобы использовали свойство KeepAlive Ваших страниц.
<Page KeepAlive="True" ...>
...
</Page>
Это приведет только к событию Loaded, запускаемому при навигации назад к странице, которую Вы уже посетили. Таким образом, необходимо будет удостовериться установку DataContext на, Инициализируют (или внешне или в конструкторе), а не Загрузка.
Однако это будет только работать на тот экземпляр Страницы. Если Вы переместитесь к новому экземпляру той страницы по нему, то конструктора вызовут снова.
У меня были подобные проблемы, и это было решено путем проверки, что я реализовывал IEquatable правильно. Когда привязка происходит, она пытается видеть если соответствие объектов, так удостоверьтесь, что Вы правильно реализуете свою проверку равенства.
У меня была такая же проблема. Дело в том, что. Выбранный элемент не знает, какой объект из коллекции он должен использовать. Поэтому нужно сказать выбранному элементу, чтобы он использовал объект из коллекции.
public MyObject SelectedObject
{
get
{
Objects.find(x => x.id == _selectedObject.id)
return _selectedObject;
}
set
{
_selectedObject = value;
}
}
Надеюсь, это поможет.