Как использовать SelectorBar, Frame и Dependency InjectionC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать SelectorBar, Frame и Dependency Injection

Сообщение Anonymous »

Я использую WinUi 3, набор инструментов сообщества mvvm и Net 8.0 с языком C#.
У меня есть страница обзора, на которой должна отображаться коллекция элементов двумя возможными способами.
В App.xaml. cs я добавил следующие страницы для загрузки с помощью DI.

Код: Выделить всё

  services.AddTransient();
// Subpages of OverviewPage
services.AddTransient
();
services.AddTransient();
У вас должна быть возможность просматривать элементы в виде списка или DataGrid. Для этого я добавил элемент управления SelectorBar с событием SelectionChanged и фреймом.
OverviewPage.xaml OverviewPage.xaml.cs

Код: Выделить всё

    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;
}
Эти две страницы предназначены для запроса элементов через Messenger, когда они загружены, и это работает.
Моя проблема в том, что каждый раз вы меняете выбор, страницы Page1 и Page2 создаются снова и снова. Но я не хочу этого, я хочу, чтобы страницы Page1 и Page2 создавались один раз и удалялись при удалении страницы обзора.
Сначала я думал, что могу добавить подстраницы с помощью AddScoped, но не знаю, как это сделать. это. Есть ли у кого-нибудь идеи, как это сделать? Возможно ли это вообще?
С уважением

Подробнее здесь: https://stackoverflow.com/questions/783 ... -injection
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как использовать SelectorBar, Frame и Dependency Injection
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Переключение Koin Dependency Injection между локальным и удаленным источником данных
    Anonymous » » в форуме Android
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Почему Spring Dependency Injection @Autowired выдает исключение NullPointerException в сервлете?
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • GDALWarpRegionToBuffer и мозаика, когда Dst Frame не содержится строго в Src Frame
    Anonymous » » в форуме C++
    0 Ответы
    89 Просмотры
    Последнее сообщение Anonymous
  • Global Frame vs. Stack Frame
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»