@xamarin_russia

Страница 589 из 619
Aleksandr
01.10.2018
08:10:07
спасибо, посмотрю

Boris
01.10.2018
08:11:09
https://www.ideone.com/eLGiGJ
У тебя у кнопки контекст Assignment, а команда в AssignmentsViewModel

assylzhan
01.10.2018
08:14:54
У тебя у кнопки контекст Assignment, а команда в AssignmentsViewModel
Спасибо! Подскажите, как исправить, чтобы команды оставались в viewmodel

Google
Roma
01.10.2018
08:18:53
Устанавливаю библиотеку, ошибка понижиный XF, повышаю версию XF куча других ошибок, кто то сталкиался с этим? как исправить?

Roma
01.10.2018
08:20:53
ща попробую

Все работет, спасибо0

)

Serhii
01.10.2018
09:40:53
всем привет. использую плагин Геолокатор в нативном андроид приложении. Часто бывает что он слишком долго пытается найти координаты (до нескольких минут). Потом перезапускаешь и находит моментально. Я даю ему ограничение на 30 сек, если он за это время не находит, приложение запускает снова поиск координат и тут же находит. Может как-то можно без этого костыля? может кто сталкивался. И это не первое приложение с этим багом.

assylzhan
01.10.2018
09:44:39
RelativeSource
Спасибо, помогло!

Проблема с MessagingCenter. Есть страница, на которой отображаются список элементов, для добавления нового элемента, перехожу на другую страницу, через Navigation.Push(AddPage), там получается добавляю новый элемент. И делаю Navigation.Pop. При этом, при добавлении отправляю сообщение MessagingCenter.Send...

Alexander
01.10.2018
10:01:47
нужно ли лицензионное соглашение для простенького приложения - напоминалки для физ лица?

assylzhan
01.10.2018
10:03:45
А на основной странице делаю .Subscribe. и здесь все срабатывает, но при переходе не отображается обновленный список, отображается список в прежнем состоянии(т.е. без нового элемента)

приходится обновлять вручную, чтобы увидеть обновление.

Google
Max
01.10.2018
10:05:35
По прошлому примеру, вижу там ObservableCollection
Она не нотифицирует о добавлении

assylzhan
01.10.2018
10:05:40
я ипользую INotifyPropertyChanged

Max
01.10.2018
10:05:44
Или изменении коллекции целиком

Олег
01.10.2018
10:05:54
По прошлому примеру, вижу там ObservableCollection
имеешь в виду, тему, которая была месяц назад?

где мы писали свой кастомный стэк с использованием коллекции

assylzhan
01.10.2018
10:06:57
https://www.ideone.com/eLGiGJ

Олег
01.10.2018
10:07:48


assylzhan
01.10.2018
10:09:53
у меня получается, что MessagingCenter.Subscribe<AssignmentDetailViewModel>(this, "RefreshListView", (obj) => { LoadAssignmentsCommand.Execute(null); }); срабатывает, но я у меня не обновляется список

any ideas?

Boris
01.10.2018
10:11:39
Так попробуй что вообще в VM со список приходит или получается?

Олег
01.10.2018
10:13:29
any ideas?
Сверху Сова тебе написал, что нет уведомления об изменении коллекции. У меня было похожее, когда я писал собственный StackLayout с элементами ListView. Суть была в том, что не было подписки на изменения в коллекции. Я скрин прислал, на основе его можешь свой добавить.

Олег
01.10.2018
10:15:37
Max
01.10.2018
10:16:15
получается MessagingCenter не нужен?
Ну конкретно в твоём кейсе оно может и нужно. Ты же на другой странице добавляешь элемент

assylzhan
01.10.2018
10:16:37
Делай OnNotifyPropertyChanged(nameof(YouCollection));
Хорошо, спасибо, пойду разбираться

Max
01.10.2018
10:17:09
Короче, есть Observer. Наблюдатель

Если по-простому, как запомнить принцип работы

Наблюдает за тем, что уже есть

ObservableCollection думай сам

Google
assylzhan
01.10.2018
10:21:35
просто я добавляю новый элемент на новой странице, и мне нужно, чтобы список обновился. Без MessagingCenter не понимаю как сделть

Max
01.10.2018
10:25:58
просто я добавляю новый элемент на новой странице, и мне нужно, чтобы список обновился. Без MessagingCenter не понимаю как сделть
Можешь вообще через событие сделать. Можешь через Message center, можешь сделать общий storage для этой коллекции и через DI его пробросить везде, обернуть + и - в коллекцию в OnNotify..., Записать в Properties и прочитать?

Вариантов с десяток наберётся

Просто вызови нотификацию об изменении коллекции

Олег
01.10.2018
10:31:11
I'm new in xamarin)), хочу понять через MessagingCenter
для начала напиши OnNotifyPropertyChanged(nameof(YouCollection)); Если повезет - все сработает и так.

assylzhan
01.10.2018
10:31:54
есть вот это, правда я не доконца понимаю

#region INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged([CallerMemberName] string propertyName = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion

Олег
01.10.2018
10:32:27
вот твой метод на уведомление OnPropertyChanged

вызови после сработки messagingcenter.

assylzhan
01.10.2018
10:40:45
вот твой метод на уведомление OnPropertyChanged
вызвал, ничего не изменилось.

Max
01.10.2018
10:41:16
вызвал, ничего не изменилось.
а элемент-то добавился?

Олег
01.10.2018
10:41:33
вызвал, ничего не изменилось.
в watchmode добавилось чего?

Max
01.10.2018
10:41:46
целесообразно создать его на странице и отправить через Messaging Center

потом поймать и добавить

assylzhan
01.10.2018
10:42:44
а элемент-то добавился?
элемент добавляется, чтобы увидеть приходится обновлять.(руками)

Max
01.10.2018
10:42:58
короче

Google
Max
01.10.2018
10:43:34
кодес в лс скинь, если не получится

Кита
01.10.2018
11:20:33
просто я добавляю новый элемент на новой странице, и мне нужно, чтобы список обновился. Без MessagingCenter не понимаю как сделть
прокинуть делегат из парента на страницу или то что отвечает за состояние страницы где добавляется элемент и дернуть его в команде добавления элемента и прокинуть в делегат параметром сам элемент? Не? никто так не делает? Это же проще чем следить за event bus

Кита
01.10.2018
11:23:20
Лучше используйте TaskComletionSource
при чем тут он? А если экран уйдет на паузу? Все таски в ios например завершаются моментально

Кита
01.10.2018
11:24:46
В смысле на паузу?
пользователь свернет приложение

Artem
01.10.2018
11:25:34
Хмм, итересное проведение, не замечал, что таски сразу завершаются

Кита
01.10.2018
11:27:30
Почему-то мало кто до сих пор думает о мобильном приложении как о программе существующей в дико агрессивной среде, которая норовит вашу аппу прибить при любом удобном случае

Кита
01.10.2018
11:28:42
я вас не понял)) вот мой код https://github.com/strelokask/xamarin/blob/master/MasterDetail/MasterDetail/ViewModels/AssignmentDetailViewModel.cs
ну я никак не смогу помочь вам если вы не знаете что такое делегаты

делегат это ссылка на метод. Например в вашей вьюмодели есть метод типа AddItemToCollection(Item item) в котором происходит добавление item в observablecollection - вот на этот метод и надо передать ссылку в виде Action<Item> в чилдовую вьюмодель где происходит создание элемента

Kirill
01.10.2018
11:34:49
ну значит мало работали с ios
Так TaskCancellationSource по факту и не таск, чего его системе завершать. Это ж по сути коллбэк

Кита
01.10.2018
11:35:15
Так TaskCancellationSource по факту и не таск, чего его системе завершать. Это ж по сути коллбэк
TaskCancellationSource возвращает Task, в который после восстановления из бэкграунда и пытается передать результат кто-то кто держит ссылку на TaskCancellationSource. Вот только заканчивается это пшиком

Кита
01.10.2018
11:41:23
Я всегда всем говорил и буду говорить - думайте о мобильном приложении как о живущей вне норы мышке Джерри, которую кот Том постоянно норовит прибить, съесть или покалечить. Всегда. Без исключений. Без перерывов на дружбу

Boris
01.10.2018
12:30:38
На ведре возвраты из другой активити заворачивают в в TaskCompletionSource и это работает

Google
Boris
01.10.2018
12:31:18
На iOS и правда не видел чтобы кто-то такое дело. Потому что реально звучит как что-то что не сработает

Анимации то дохнут постоянно

Кита
01.10.2018
12:51:50
Так TaskCancellationSource по факту и не таск, чего его системе завершать. Это ж по сути коллбэк
Кстати TaskCancellationSource да и Task меня сейчас удивил в релизе в 11 и 12 iOS.(жаль на 10 проверить сейчас нет возможности). Он вернул таки управление и после звонка и после ухода в бэкгрунд. Раньше(год назад когда исследовал эту тему) такого не наблюдалось, в дебаге таски жили, в релизе таски умирали сразу. Сейчас они не умирают и в релизе. Феноменально. Т.е сообщения отправленные на сервер доходят в итоге. Xamarin растет. Это серьезная фича, от отсутствия которой часто можно было страдать на SSO авторизациях в iOS

Анимации то дохнут постоянно
анимации в Lottie тем не менее дохнут, да

Kirill
01.10.2018
12:54:08
Кстати TaskCancellationSource да и Task меня сейчас удивил в релизе в 11 и 12 iOS.(жаль на 10 проверить сейчас нет возможности). Он вернул таки управление и после звонка и после ухода в бэкгрунд. Раньше(год назад когда исследовал эту тему) такого не наблюдалось, в дебаге таски жили, в релизе таски умирали сразу. Сейчас они не умирают и в релизе. Феноменально. Т.е сообщения отправленные на сервер доходят в итоге. Xamarin растет. Это серьезная фича, от отсутствия которой часто можно было страдать на SSO авторизациях в iOS
хм, тогда хорошо. Но всё таки TaskCancellationSource хоть и формально таска, то в фоне ничего не выполняет, и по идее и должен жить, как и всё остальное в приложении. Вот всякие сетевые операции, с файлами и тд, может система убивать, как всякую активность. Возможно сейчас сделали, типо несколько секунд в фоне приложение еще может что-то делать, а потом завершается

Max
01.10.2018
12:54:29
Max
01.10.2018
12:55:18
Кстати не пробовал хранить сам объект (Lottie Render) где-то и выкидывать его поверх в UI тред?

Kirill
01.10.2018
12:55:22
Кита
01.10.2018
12:57:10
Кстати не пробовал хранить сам объект (Lottie Render) где-то и выкидывать его поверх в UI тред?
я просто делаю рестарт если надо. Если анимация например в loopе то просто запускаю её заново

Max
01.10.2018
12:57:31
Но все думаю может как-то его по-другому можно

Страница 589 из 619