
Ssjuk
23.07.2017
10:30:57

Кита
23.07.2017
10:31:13
в настройка билда
в дополнительных аргументах билда

Yaroslav
23.07.2017
10:41:43
Ох уж эти сммщики

Google

Dmitry
23.07.2017
14:30:43

Vlad
23.07.2017
15:16:18
когда у разработчика есть чувство юмора?

Pavel
23.07.2017
15:17:59
ох уж эти замаринщики, оборжешься с них, конечно

Kirill
23.07.2017
15:19:06
Как бы Xamarin не при чем. Это API Android

Vlad
23.07.2017
15:24:56
у меня есть ListView к которому привязан ObservableCollection. При нажатии на ячейку, должно появляться окно с контентом. Если никаких данных не передать на новую страницу, то все нормально, а если передать объект из этого списка то приложение крашится...

Kirill
23.07.2017
15:25:34
Stream какой-то передаешь?

Vlad
23.07.2017
15:26:45
да, там в объекте есть 2 стрима
картинки

Kirill
23.07.2017
15:27:36
Ну вот к ним не может получить объект, ибо стрим закрыт уже. И для чего ередавать стримы то?

Vlad
23.07.2017
15:28:32
ну там не только стримы, а целый объект передается. стримы эти - это картинки

Kirill
23.07.2017
15:30:53
Стримы не для хранения объектов, вообще он по природе своей одноразовый - стянул объект и сохранил. для картинок всё просто - сохраняшь кртинку из стрима в файл, а в объекте уже хранишь ссылку на файл, и отображаешь по этой ссылке.

Vlad
23.07.2017
15:35:23
хммм... спасибо)
ну можно еще хранить в строке base64string, потому что с сервера она так возвращается?

Google

Kirill
23.07.2017
15:38:44
Лучше в файл кэшировать)
Но какое кривое апи..

Vlad
23.07.2017
15:39:45
какой я такое и апи??
сам писал?

Kirill
23.07.2017
15:46:36
Да уж. Картинки должны отдаваться так же по урл, и лежать на диске (если конечно это не эро фото звезд ?)

Vlad
23.07.2017
15:47:34
ну все организовано так, что они в БД хранятся?

Летучая
23.07.2017
17:16:47
Дратути господа
Посоветуйте пожалуйста, ICommand лучше хардкодить или поставлять чз DI? Кто как делает?

Igor
23.07.2017
17:25:40
Если команда маленькая, то создавал из лямбды в конструкторе VM.
Если здоровая, то выносил в отдельный класс и создавал инстанц в контрукторе VM, передавая ей параметры через ее коструктор.
(можно было бы заменить на DI, но зависимости команды совпадали с зависимостями VM)

Летучая
23.07.2017
17:30:45
Может фабрику запилить, прям напротив проперти ресолвить и лямбду в неё совать
Чото биндиться на конкретную реализацию не хочется; кажется, что это идёт в разрез Inversion of control


Igor
23.07.2017
17:38:06
Может фабрику запилить, прям напротив проперти ресолвить и лямбду в неё совать
>> Мэньюалли через new?
конкретно команды - везде да
>> Может фабрику запилить, прям напротив проперти ресолвить и лямбду в неё совать
Если я правильно понял, то это не получится тк такая лямбюда не может ссылаться не на др поля или методы класса
(надо поле присваивать в конструкторе)
>> Чото биндиться на конкретную реализацию не хочется; кажется, что это идёт в разрез Inversion of control
Как говорится “тебе решать”, но имхо это “di-головного мозга”)) (ну реально <0.001% что тебе понадобится менять команды)


Летучая
23.07.2017
18:12:04
> Если я правильно понял, то это не получится тк такая лямбюда не может ссылаться не на др поля или методы класса
(надо поле присваивать в конструкторе)
Современные иок-контейнеры вполне могут делать штуки такого рода. В автофаке например это называется TypedParameter -> делаем абстрактную фабрику с методом Create<T>, который принимает params object[] и получаем желаемый эффект через _factory.Create<IFoo>("hello", 42);
> Как говорится “тебе решать”, но имхо это “di-головного мозга”)) (ну реально <0.001% что тебе понадобится менять команды)
Понял. То же самое относится к типам, типа ObservableCollection<T>, ObservableProperty<T> и другим подобным, как считаешь?
Блэт Нэвэ... В моей реализации ObservableCollection и ObservableProperty принимают через конструктор IDispatcher, который способствует обновлению компонентов, влияющих на UI, всегда в главном потоке и platform-specific. ?


Max
23.07.2017
18:18:09
Кто может пояснить за Xamarin.Auth в XF?
Я немного понимаю как через Dep. Services, но можно ли как-то без этого ?

Slava
23.07.2017
18:26:08

Летучая
23.07.2017
18:27:18
А там под капотом
1) реализация и вызов пропертиченджд
2) вызов платформспецифик диспатчера с гарантией, что даже из другого потока мы обновим уи
чем не любо?

Google

Slava
23.07.2017
18:29:04

Летучая
23.07.2017
18:29:47
Хотя фоди оч хороший вариант, не спорю

Slava
23.07.2017
18:30:16

Летучая
23.07.2017
18:31:58
Хмм
Ну это весомый аргумент конечно
Даже возразить нечего
Так, а с наблюдаемыми коллекциями как быть (если хотим, чтобы они всегда обновлялись в UI-потоке)? Тоже есть какая-то магическая тулза? ?

Aleksandr
23.07.2017
18:42:14
Прямые руки называется

Летучая
23.07.2017
18:44:52

Aleksandr
23.07.2017
18:45:48
Я думаю ты не дурак и UI элементы не трогаеш не в UI потоке

Летучая
23.07.2017
18:45:55

Летучая
23.07.2017
18:45:59
А если я получаю данные
И мне их надо отобразить ВДРУГ

Aleksandr
23.07.2017
18:46:09
То что?

Летучая
23.07.2017
18:46:09
когда поток завершил работу
То мне что, дедовским ContinueWith обмазываться прикажете?

Aleksandr
23.07.2017
18:46:23
ты к колекции обращаешся
А не напрямую к контролу

Летучая
23.07.2017
18:46:55
Попробуй

Google

Летучая
23.07.2017
18:47:07
Из не уи-потока обновить ObservableCollection
я хз, может в хамарине всё по-другому
но uwp ниасиливает
и впф тоже
хамарин не помню
не буду врать

Aleksandr
23.07.2017
18:48:49
Если не срабатывает ObservableCollection то RaisePropertyChanged никто не отменял
Второй вариант 100% рефрешнет проперти

Admin
ERROR: S client not available

Летучая
23.07.2017
18:49:43
https://stackoverflow.com/questions/2091988/how-do-i-update-an-observablecollection-via-a-worker-thread
Линкрилейтед

Aleksandr
23.07.2017
18:50:17
Raise?
Не под впф ли часом у тебя примерчик,
?
Ты сможешь обновить в таске указав именно обновление коллекции в юи потоке
https://developer.xamarin.com/api/member/Xamarin.Forms.Device.BeginInvokeOnMainThread/p/System.Action/

Летучая
23.07.2017
18:53:08
Ну так круто-то же, когда коллекция позволяет делать такие вещи не задумываясь о них
так-то можно много чего понаписать
в каждом месте, когда нужно обратиться из бекграунда в уи
Dispatcher.Invoke тот же

Google

Aleksandr
23.07.2017
18:53:45
Да
Это по сути обертка
Спи*дили с впф наверняка

Летучая
23.07.2017
18:54:14
угу
издревле там был

Slava
23.07.2017
18:54:56
Не успеваю за ходом чата) Но, в большенстве случеев если ты дергаешь ObservableCollection из двух и более потоков то что-то ты делаешь не так. Не для того она

Aleksandr
23.07.2017
18:57:34
Вообще я делаю так у меня все действия ранятся в таске если что то сложное по логике (дергаю апи к примеру) то колекция по await получит данные, но только есть одно но я использую не ObservableCollection а более легкую вещь (List) а потом Raise где нужно
Просто рили бывает столько гемора с обновлением данных даже с ObservableCollection

Летучая
23.07.2017
18:59:11
https://github.com/Caliburn-Micro/Caliburn.Micro/blob/master/src/Caliburn.Micro/BindableCollection.cs вот кстати даже у разработчиков калибурна есть свое видение наблюдаемой коллекции
которая избавляет от многопоточной головной боли

Aleksandr
23.07.2017
19:00:11
Та есть ребята знаю пишут ExtendedObservableCollection просто для удобства и для того чтобы не было проблем потом
Там все это учтено уже

Летучая
23.07.2017
19:00:22
+1
ещё DeeplyObservableCollection писал
Это когда Replace Action дёргается при изменении айтема
внутреннего
думал, может есть что готовое типа фоди, потому спрашивал )
с большой красной кнопкой "сделать зашибись"

Aleksandr
23.07.2017
19:02:01
Фоди есть на формсах, но у него свои плюсы и так же недостатки