@xamarin_russia

Страница 604 из 619
Dmitry
13.10.2018
08:39:26
@slavachernikoff Добрый день, мне кажется удалось реализовать StateContainer, если будет время и возможность - посмотрите пожалуйста код, уверен, что есть над чем поработать перед переносом в реальный проект. Спасибо ?? https://github.com/vegiwoo/Implements---StateContainer-

Google
Dmitry
13.10.2018
13:31:58
Да вроде нормально все :)
Спасибо, буду переносить ??

Iván
14.10.2018
01:11:57
уже скидывали сюда? ) https://github.com/adamped/xamarin.flutter

Kirill
14.10.2018
01:21:45
уже скидывали сюда? ) https://github.com/adamped/xamarin.flutter
Госпаде, что это за непонятная дичь)

Кита
14.10.2018
01:31:23
после слов transpiler можно даже не смотреть

Iván
14.10.2018
01:37:52
yo dawg, I've heard you like abstraction layers, so I put an abstraction layer over your abstraction layer, so you can crash while u crash

Андрей Родионович
14.10.2018
11:50:33
Ребята, такой вопрос Допустим у меня есть некое свойство(объект) во вьюмоделе Оно вызывает OnPropertyChanged если происходит set Но если менять поля/свойства этого объекта будет ли происходить OnPropertyChanged По идее ведь не должно... А если нет, то какие есть варианты для решения сего?

Андрей Родионович
14.10.2018
11:52:22
Вооот

Pavel
14.10.2018
11:52:47
Сделать свойство вьюмодели, которое будет менять саойства другого свойства.

Ну там по другому никак и не сделаешь паходу

Орхан
14.10.2018
11:53:43
что вам нужно

конкретно

Google
Кита
14.10.2018
11:53:51
Вооот
ObservableObject вам в помощь

Андрей Родионович
14.10.2018
11:54:05
ObservableObject вам в помощь
Почитаю, благодарю

Кита
14.10.2018
11:54:06
ViewModel тоже по сути ObservableObject

ObservableObject это из RX

Андрей Родионович
14.10.2018
11:55:49
что вам нужно
Есть объект во вьюмоделе(сама модель) назовем его MainObject В нем еще объекты, поля и тд Нужно чтобы при изменении свойств MainObject сам MainObject говорил что он изменился(OnPropertyChanged)

Без непосредственно set самого MainObject

Ну я хз как еще лучше объяснить

Pavel
14.10.2018
11:56:29
Ну как вариант сделать в объекте ивент, и звать его на любое изменение полей.

Орхан
14.10.2018
11:56:43
можно повесить на сами значения онпропертичейнджед

те которые там внутри находятся

Андрей Родионович
14.10.2018
11:57:15
можно повесить на сами значения онпропертичейнджед
Вот я и спрашивал, будет ли при этом вызывать пропертиченджед сам mainObject

Говорят что нет

Значит не вариант

У меня к этому объекту привязан некий контрол, который его отрисовывает

Но я же не буду каждый раз сетить новый объект вместо старого

Я просто меняю его свойства

Выше писали про ObservableObject

Если это то что нужно, то отлично)

Pavel
14.10.2018
11:58:44
Объявляйте в объекте ивент и подписывайтесь на него во вьюмодели, а ивент пусть интциирует обновление проперти через raisepropertyxhanged или вроде того

Орхан
14.10.2018
11:59:09
попробуй отпишись, мне тоде стало интересно))

Google
Орхан
14.10.2018
11:59:12
ж

Андрей Родионович
14.10.2018
11:59:40
Это какой то двухэтажный ивент будет оО

Pavel
14.10.2018
12:00:20
Не

Андрей Родионович
14.10.2018
12:01:00
Не
Как это не, свойства вложенных объектов тоже нужно будет менять

Pavel
14.10.2018
12:01:16
Я говорю у вас есть свойства вьюмодели. Свойство это объект. Внутри жтого объекта можно объявить ивент который будет вызываться при лббом изменении полей объекта. А на этот ивент можно подписать вьюмодель, типа такого.

Кита
14.10.2018
12:02:10
по идее должно быть во вьюмодели в сэттере вашей проперти что-то типа ObservableObject<YourClass>().WhenChanged(RaisePropertyChange(nameof(Property))); псевдокод это надо понимать

Андрей Родионович
14.10.2018
12:03:53
Кита
14.10.2018
12:04:07
не не статический

Кита
14.10.2018
12:04:29
Pavel
14.10.2018
12:04:58
Не знал) ну значит мое решение просто более колхозное, но верное)))

Андрей Родионович
14.10.2018
12:05:14
Ага, не статический Тобишь само свойство должно быть обернуто в этот дженерик и вложеные поля(объекты) тоже?

Кита
14.10.2018
12:06:11
Андрей Родионович
14.10.2018
12:06:25
У меня контрол имеет биндингпроперти такого же типа как и вот этот вот объект

Кита
14.10.2018
12:07:17
Зачем? оО
Небольшой. из ObservableObject<T> в T через что-то типа GetInstance<T>()

Андрей Родионович
14.10.2018
12:07:29
Ага, точно)

Google
Андрей Родионович
14.10.2018
12:07:33
Теперь понял

Кита
14.10.2018
12:08:18
В принципе можно все это самому написать. Я подобное в Rx видел, но активно не пользуюсь сам. из observable только observableRangeCollection

Андрей Родионович
14.10.2018
12:08:38
Ну и получается что объект должен быть обернут в это, при инициализации поля вызывается вот это вот условие и так же с вложенными объектами главного объекта?)

Сори что запутано пишу

А где находится этот ObservableObject?

В каком нэймспейсе?

Кита
14.10.2018
12:11:52
А где находится этот ObservableObject?
зависит от mvvm фреймворка

Андрей Родионович
14.10.2018
12:12:02
?

Кита
14.10.2018
12:12:07
есть ли там он вообще такой)

если нет - сам напиши

Max
14.10.2018
12:12:25
Кита
14.10.2018
12:12:30
По сути это вьюмодель во вьюмодели

если рассматривать базовые типы то по сути ObservableObject в ObservableObject, поскольку каждая ViewModel это observable класс)

Андрей Родионович
14.10.2018
12:13:11
Тобишь как я и говорил ранее модель просто реализует INotifyPropertyChanged?

И если проперти модели меняется то вызывается этот ивент

Кита
14.10.2018
12:13:43
Тобишь как я и говорил ранее модель просто реализует INotifyPropertyChanged?
ну в сухом остатке да. Но можно все сделать по красоте)

Андрей Родионович
14.10.2018
12:13:52
Но как сам главный объект вызовет то его?(

Ну типо поменялось свойство модели, вызвало OnPropertyChanged, и что дальше то? Как модель поймет что нужно его вызвать

Андрей Родионович
14.10.2018
12:17:42
Если байндинг идет "MyObject.MyProperty" - то достаточно в твоем объекте (который во VM) так же сделать проперти, которые вызывают NotifyPropertyChanged и байндинг будет обновляться.
Объясню конкретнее тогда Байндинг идет на MyObject моему контролу Контрол берет все свойства объекта и рисует его Свойства меняются, контролл должен рисовать, но MyObject не вызвал OnPropertyChanged

Google
Андрей Родионович
14.10.2018
12:18:01
И ничего не отрисовало

Мне вот надо чтобы когда меняются свойства объекта объект это замечал и вызывал OnPropertyChanged

Во вьюмоделе

Kirill
14.10.2018
12:19:12
Объясню конкретнее тогда Байндинг идет на MyObject моему контролу Контрол берет все свойства объекта и рисует его Свойства меняются, контролл должен рисовать, но MyObject не вызвал OnPropertyChanged
как вариант в контроле реалищовать подписку на PropertyChanged объекта и в нём отлавливать все изменения (свойства, еслиственно, тоже долны кидать property changed)

Мне вот надо чтобы когда меняются свойства объекта объект это замечал и вызывал OnPropertyChanged
Зачем вызывать событие обновления всего объекта, когда обновилось 1 свойство? его и менять

Андрей Родионович
14.10.2018
12:20:36
Ну как вариант то, конечно, но всё несколько сложнее, ведь в объекте есть еще объекты и они тоже должны вызывать это

Kirill
14.10.2018
12:24:35
Ну как вариант то, конечно, но всё несколько сложнее, ведь в объекте есть еще объекты и они тоже должны вызывать это
то есть есть Object1.Object2.Object3.Property и при его изменении тоде надо вызывать отрисовку? ну тут все равно надо какое-то событие дергать. Тогда подписываться не тоько на изменения основного объекта, но и на его вложенные. какого-то красивого решения для такого нет. но разумнее вскго именно в контроле подписаться, тогда все будет на своих местах и VM будет чистая. самый нормальный и не костыльный способ

Кита
14.10.2018
12:25:15
Биндинги на всех уровнях придется делать, да

Андрей Родионович
14.10.2018
12:29:30
Тогда большое всем спасибо)

Кита
14.10.2018
12:29:48
Окей, как я понял мой контрол будет иметь source в виде этого объекта и при вызове set source’a подписывать один и тот же обработчик события на OnPropertyChanged всех уровней вложенности объекта, верно?
твой контрол по сути ждет что в него засэтят объект верхнего уровня. Как дальше контрол будет разгребать все его проперти - дело твое

Евгений
14.10.2018
17:14:22
Доброго всем вечера. Хотелось-бы спросить, имеется-ли у кого-то здесь присутствующих опыт реализации эмуляции UART (serial-порта) поверх BLE на Xamarin? Платформы iOS Android.

Установить BLE-коннекшн с помощью https://www.nuget.org/packages/Plugin.BLE мне удалось, а вот далее что делать - теряюсь

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