@xamarin_russia

Страница 423 из 619
Кита
14.06.2018
17:02:04
Модель это не POCO и не бизнес-объекты

это распространенная ошибка

FinniV
14.06.2018
17:02:37
да пофиг, я не про это вопрос поднимал

модель - данные

Google
Кита
14.06.2018
17:02:59
короче маппинг тебе в помощь

Max
14.06.2018
17:04:04
Automapper сгодится

хотя человеку просто надо SelectedItem получить из MvvMCross

FinniV
14.06.2018
17:05:34
Это не то

Кита
14.06.2018
17:06:02
маппишь poco в entity а entity во viewmodel. Когда обращаешься к репозиторию получаешь из него список Entity а его маппишь в список вьюмоделей. Каждой вьюмодели в цикле можешь передать парентовую вьюмодель. Главное не забывать чистить. Приходит тебе команада delete во вьюмодель айтема. В паренте есть метод void Delete(ItemViewModel item) Берешь и передаешь this в него а в паренте уже работаешь с коллекцией

Все

так правильно будет делать. Ты же можешь написать любой какой хочешь. Но важно помнить что твои poco это не модель. Что ты показываешь в списке не poco и не entity а ВЬЮМОДЕЛИ

Kirill
14.06.2018
17:07:14
Automapper сгодится
А Automapper не слишком тяжелый? особенно если много объектов

Vladislav
14.06.2018
17:07:20
по-моему, все ж проще при создании айтема передать в него комманду, которая принима параметром аргумент айтема, не будет таких вложеностей

Кита
14.06.2018
17:07:26
маппил сотни и тысячи айтемов в списке

FinniV
14.06.2018
17:08:12
вот представь у тебя есть N айтемов типа foo в каждом айтеме - три кнопки по клику на кнопку 1. вызывается первая комманда по клику на кнопку 2. вызывается вторая комманда 1 команда вызывает на вьюмодели метод Method1 который делает что то с этим айтемом в коллекции 2 комманда так же и т.д.

Google
FinniV
14.06.2018
17:08:32
ItemSelected можно забайндить просто к VM базару ноль

Max
14.06.2018
17:08:50
все правильно говоришь

FinniV
14.06.2018
17:09:04
но как быть с кликом по кнопкам, не передавая при этом ссылку на VM в обьект

Kirill
14.06.2018
17:09:17
Ну ок) Хотя мы вручную конвертим DTO poco в BussinesObject poco, где толькоо нужные поля в нужном виде.

Кита
14.06.2018
17:09:41
Кита
14.06.2018
17:10:15
надо всем научиться работать с automapper срочно)

куча проблем сразу решается

Max
14.06.2018
17:10:38
тоже самое про DI)

Кита
14.06.2018
17:10:42
к нему ещё кстати IoC прикручивается

Max
14.06.2018
17:10:52
к нему ещё кстати IoC прикручивается
во, только хотел сказать

Кита
14.06.2018
17:11:29
во, только хотел сказать
Mapper + DI вообще мощь

Max
14.06.2018
17:12:35
Mapper + DI вообще мощь
for (int i = 0; i < 10e9999; i++) { Console.WriteLine(«+»); }

Kirill
14.06.2018
17:13:14
monkey work??
Ну практически. Но automapper тоже нужно обучать) А бывают не самые тривиальные конвертации. Весь DataConveter по преобразованию DTO <-> BO (в обе стороны, где это нужно) по всему проекту, достаточно крупному занимает 740 строк) Зато сразу наглядно всё. Ну Automapper классная вещь, не спорю. На бекенде используем его. А в мобилках пока не прижился

Александр
14.06.2018
17:13:54
FinniV
14.06.2018
17:14:06
ну так я написал тебе решение)
такое решение и есть сейчас но смотри что вышло этот айтем может использоваться на разных паррент VM из за черго приходится добавлять и соответствующие поля как избавиться уже от этого( это и был главный вопрос)

Google
Kirill
14.06.2018
17:14:08
while(true) не проще?
тогда не выйдет из цикла)

Max
14.06.2018
17:14:10
while(true) не проще?
я не из этих, кто юзает while(true)

Кита
14.06.2018
17:15:06
реализовывай интерфейс в любой парентовой вьюмодели

Kirill
14.06.2018
17:15:27
я не из этих, кто юзает while(true)
Использушь, используешь, но вот просто не наглядно) C за тебя его вызывает и всё приложение в нём крутится) Ну и так в проектах порой нужен, главное не забыть условие выхода)

Александр
14.06.2018
17:15:47
я не из этих, кто юзает while(true)
но твой-то пример вообще не компильнётся

Vladislav
14.06.2018
17:16:55
a если так? :D for (long i = 0; i < long.MaxValue; i++) { Console.WriteLine("+"); }

Max
14.06.2018
17:17:05
3 ` \n

Alexey
14.06.2018
17:18:20
Коллеги, не могу сбилдить проект из-за трех ошибок. Что от меня хотят?

Kirill
14.06.2018
17:18:22
a если так? :D for (long i = 0; i < long.MaxValue; i++) { Console.WriteLine("+"); }
for (double i = 0; i < double.PositiveInfinity; i++) { Console.WriteLine("+"); }

Alexey
14.06.2018
17:18:27


Kirill
14.06.2018
17:18:32
Ссылаешься на ресурс, а такого нет в приложении

FinniV
14.06.2018
17:19:28
реализовывай интерфейс в любой парентовой вьюмодели
так и думал сразу окей,а если айтемов на parrent VM может быть несколько написать 1 обобщенный метод где через if перебирать какой тип айтема передан в метод или под каждый тип свой метод?

Alexey
14.06.2018
17:19:37
Я не понимаю как их исправить, уже несколько часов ? На форуме предлагаю пляски с бубном в виде повышения Target Framework, но это выглядит как-то... не сильно хорошее решение же, просто отключать 2 версии пользователей?

Так, а как его добавить?

FinniV
14.06.2018
17:19:58
Google
Alexey
14.06.2018
17:20:11
Не помогает

Кита
14.06.2018
17:20:30
немного не понял
а. все торможу. понял. Надо подумать

Kirill
14.06.2018
17:20:45
Так, а как его добавить?
ну где-то на них ссылаешься же, значит код где-то взял, возможно там есть решение

Alexey
14.06.2018
17:21:13
Ничего не брал, просто стандартный проект завел в vs4mac ?

FinniV
14.06.2018
17:21:36
в студии по 200 ошибок с ресурсами и спокойно билдит

Kirill
14.06.2018
17:21:59
Max
14.06.2018
17:22:13
пересоздать проект

Alexey
14.06.2018
17:22:55
Вот да, когда я создаю чистый - все нормально. Но у меня в старом некоторая кодбаза под iOS. Неужели пересоздавать - нормальное решение?

Admin
ERROR: S client not available

Alexey
14.06.2018
17:23:27
В смысле, мне интересней понять что именно не нравится компилятору и исправить ошибку. Но я не понимаю что ему не нравится ?

Кита
14.06.2018
17:23:41
FinniV
14.06.2018
17:23:53
это просто и в лоб)
тогда давай по сложнее

Max
14.06.2018
17:23:55
это просто и в лоб)
и причем часто юзается

FinniV
14.06.2018
17:24:01
тогда ладно

думал что это не ок

Alexey
14.06.2018
17:24:12
Ну т.е. ты предлагаешь пересоздать проект, перенести всю shared кодбазу, перенастроить iOS часть и дальше заводить Android?

Google
Max
14.06.2018
17:24:14
ок, конечно

Alexey
14.06.2018
17:24:30
(Это я FunniV)

Alexey
14.06.2018
17:24:49
Ага, понял, сейчас попробую, спасибо

Max
14.06.2018
17:24:58
потом пересоздай android

Кита
14.06.2018
17:25:14
тогда давай по сложнее
я не знаю) сам придумай, главное чтобы код решал задачу. А потом можешь уже пофилософствовать о высоких материях и философии типа “красиво/не красиво”

Vladislav
14.06.2018
17:25:16


Max
14.06.2018
17:25:19
и добавь ссылку на уже новенький shared на .net standart

Vladislav
14.06.2018
17:25:25
question: можна ли как-то растянуть не переводя на grid?

Max
14.06.2018
17:26:16
CenterAndExpand?

Kirill
14.06.2018
17:27:24
question: можна ли как-то растянуть не переводя на grid?
Сова подсказал, но лучше перевести на Grid, в производительности сильно выиграешь, да и проще будет верстка

Max
14.06.2018
17:29:09
проще - да, в разы

Kirill
14.06.2018
17:29:33
Max
14.06.2018
17:29:56
Alexey
14.06.2018
17:29:57
надо shared на .net standart перенести (но это твою проблему не решит)
Я немного не так выразился, у меня он и есть .net standard

Kirill
14.06.2018
17:30:07
Compressed Layaout решает
Кстати он норм работает?

Max
14.06.2018
17:30:25
Кстати он норм работает?
Я проводил тесты и он ломает все в чертовой бабушке

Расположение элементов точно

Kirill
14.06.2018
17:30:41
?? тогда не решает)

Alexey
14.06.2018
17:30:45
Просто не могу заставить собраться android версию ?Пересоздал проект, сейчас буду думать как его подключить к shared части

Max
14.06.2018
17:30:50
по скорости - да, есть выйгрыш, но на слабенькой верстке

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