Size: a a a

Xamarin Developers

2020 December 04

М

Микаил in Xamarin Developers
Taras Shevchuk
Только если дефрлтный инициалищатор свойства стоит, тогда он первее. Иначе первым конструктор будет
это вообще что? Впервые такое узнаю
источник

TS

Taras Shevchuk in Xamarin Developers
Ты не модешь засетить свойство объекта, если он ещё не создан, а объект не создан пока тело конструктора не отработает до конца
источник

TS

Taras Shevchuk in Xamarin Developers
public string CategoryId { get; set; } = "Default initializer";
источник

TS

Taras Shevchuk in Xamarin Developers
Попробуй сетить viewmodel в методе OnAppearing как вариант, только делай сначала проверку если viewModel is null
источник

М

Микаил in Xamarin Developers
Taras Shevchuk
public string CategoryId { get; set; } = "Default initializer";
Это я точно впервые вижу
Короче значит сперва в любом случае проходит конструктор, а потом свойства или поля?
Или только в xamarin forms так?
Я думал, что сперва свойства проходят, потом конструктор
источник

TS

Taras Shevchuk in Xamarin Developers
OnAppearing может несколько раз вызваться
источник

TS

Taras Shevchuk in Xamarin Developers
Микаил
Это я точно впервые вижу
Короче значит сперва в любом случае проходит конструктор, а потом свойства или поля?
Или только в xamarin forms так?
Я думал, что сперва свойства проходят, потом конструктор
Это в C# так
источник

TS

Taras Shevchuk in Xamarin Developers
Taras Shevchuk
Ты не модешь засетить свойство объекта, если он ещё не создан, а объект не создан пока тело конструктора не отработает до конца
Опять таки, как засетяться свойства или поля вне тела конструктора? Извне объект еще не существует, нет ссылки на него
источник

М

Микаил in Xamarin Developers
При открытии страницы я передаю в параметрах значение
await Shell.Current.GoToAsync($"{nameof(NewCategoryItemPage)}?categoryId={category.Id}");
источник

М

Микаил in Xamarin Developers
OnAppearing()
помог конечно... Не знаю как должно быть.. Может так оставить))
источник

TS

Taras Shevchuk in Xamarin Developers
Окей, оно там творит магию с рефлексией, создает объект страницы и сетит параметер в свойство. Это пока предположение, чтоб утверждать нужно посмотреть в исходниках на github, и не потеряться при этом. Можешь проще проверить это: поставь брейкпоинты на сеттер и в конструкторе и посмотри в каком порядке что вызывается. Можешь даже по stacktrace-у заглянуть в исзодники чтоб лучше понять откуда сеттер свойства вызвался
источник

М

Микаил in Xamarin Developers
А вот если допустим открыли страницу, то та страница в стеке которая открывается заново, почему так происходит?
источник

М

Микаил in Xamarin Developers
Вроде я помню что если установить так, то страница быстрее открываться будет и не будет заново инициализироваться
<ShellContent Route="AboutPage" ContentTemplate="{DataTemplate local:CategoryPage}" />
источник

TS

Taras Shevchuk in Xamarin Developers
Микаил
Вроде я помню что если установить так, то страница быстрее открываться будет и не будет заново инициализироваться
<ShellContent Route="AboutPage" ContentTemplate="{DataTemplate local:CategoryPage}" />
Ну, мы вообще от Shell отказались в проекте, так как он пересоздавал странтцы когда переключаешся между нижними табами (как минимум в нативе каждый раз новый фрагмент создавался, боль). Может уже пофиксили, но он как то еще сырой как мне кажется
источник

М

Микаил in Xamarin Developers
Shell в некотором случае удобный больше всего готового
Но однако да, все не так как хочется и не так гладко
Даже не знаю что улучшили раньше пытался делать на нем что-то и сейчас пытаюсь, что-то разницы не вижу, если это не внутренние изменения
Например еще я хочу чтобы элементы в выдвижном меню при нажатиии был эффект нажатия, а не просто моргания и переход резкий причем
источник

М

Микаил in Xamarin Developers
Думаю следующий проект я попробую на MasterDetailPage
источник

М

Микаил in Xamarin Developers
У меня последняя VS и при создании проекта уже нету MasterDetail
Раньше было возможным сразу создавать
Теперь только Shell
источник

М

Микаил in Xamarin Developers
Почему не работают комманды?
источник

М

Микаил in Xamarin Developers
Все правильно же
источник

М

Микаил in Xamarin Developers
Определение комманд
источник