У меня есть страница обзора, на которой должна отображаться коллекция элементов двумя возможными способами.
В App.xaml. cs я добавил следующие страницы для загрузки с помощью DI.
Код: Выделить всё
services.AddTransient();
// Subpages of OverviewPage
services.AddTransient
();
services.AddTransient();
OverviewPage.xaml
Код: Выделить всё
Код: Выделить всё
private void SelectorBar_OnSelectionChanged(...) {
var currentSelectedItem = sender.SelectedItem;
var currentSelectedIndex = sender.Items.IndexOf(currentSelectedItem);
var pageType = currentSelectedIndex switch {
0 => typeof(Page1),
1 => typeof(Page2),
_ => throw new("invalid page index")
};
var slideNavigationTransitionEffect = currentSelectedIndex - _previousHistorySelectorBarIndex > 0 ? SlideNavigationTransitionEffect.FromRight : SlideNavigationTransitionEffect.FromLeft;
HistoryContentFrame.Navigate(pageType, null, new SlideNavigationTransitionInfo() { Effect = slideNavigationTransitionEffect });
_previousHistorySelectorBarIndex = currentSelectedIndex;
}
Моя проблема в том, что каждый раз вы меняете выбор, страницы Page1 и Page2 создаются снова и снова. Но я не хочу этого, я хочу, чтобы страницы Page1 и Page2 создавались один раз и удалялись при удалении страницы обзора.
Сначала я думал, что могу добавить подстраницы с помощью AddScoped, но не знаю, как это сделать. это. Есть ли у кого-нибудь идеи, как это сделать? Возможно ли это вообще?
С уважением
Подробнее здесь: https://stackoverflow.com/questions/783 ... -injection