
Kiparin
17.09.2018
11:01:46
Всем привет камрады . Есть вопросы по поводу камеры в Xamarin . У кого есть опыт использования и что посоветуете

Олег
17.09.2018
11:04:13
только вот цвет не меняется...

Karim
17.09.2018
11:08:53

Google

Kiparin
17.09.2018
11:25:39

An
17.09.2018
13:16:28
Какие у вас настройки для ИОС ??
http://prntscr.com/kve48q

Sasha
17.09.2018
13:49:08
Всем привет, может кто посоветовать как получать кординаты при нажиме в XF.В чате советовали https://forums.xamarin.com/discussion/comment/253375/#Comment_253375. Но это решение с использованием SkiaSharp, может кто посоветовать способ без использования Skia? Как-то не хочется подключать такую большую либу для одной функции. Может кто-то посоветовать, как сделать что бы этот способ работал без скиа?

Kirill
17.09.2018
13:49:50

Андрей Родионович
17.09.2018
13:49:55
Тапгестуре не ловит координаты
Ловит пангестуре
Но то свайпы

Sasha
17.09.2018
13:53:52

Kirill
17.09.2018
13:54:29

Sasha
17.09.2018
13:54:42

Андрей Родионович
17.09.2018
13:54:51
Pan

Sasha
17.09.2018
13:55:36

Google

Олег
17.09.2018
14:31:39
подскажите, плз, как обратиться из VM к объекту в XAML x:Name? без закидывания вьюхи в вм.

vladimir
17.09.2018
14:33:45
зачем тебе?

Олег
17.09.2018
14:33:54
блин...
у элемента есть метод. Его надо заюзать, чтобы перерисовать этот элемент

vladimir
17.09.2018
14:35:02
а поточнее?

Олег
17.09.2018
14:35:13
ууууууу, Вов, там дофига рассказывать)))
ща...
короче, есть элемент DynamicStackLayout. На него биндиться ObservableCollection с элементами. Я пытался изменить состояние элементов, но изменения не проходили. По сути это не listView, это обычный StackLayout и в нем новые биндовые объекты объявлены.
в самом начале при инициализации делает CreateStack(), который чистит всю вьюху и заполняет с нуля
и OnPropertyChanged до него не может достучаться, чтобы перерисовать. Поэтому я взял код с исходника и добавил ему новый метод для ручной перерисовки
и к нему достучаться пытаюсь

vladimir
17.09.2018
14:38:26
понял

Олег
17.09.2018
14:39:58
https://github.com/SuavePirate/DynamicStackLayout
вот если что) тут один лист кода всего

vladimir
17.09.2018
14:40:27
реализацию в XF не смотрел?
для ListView какого-нибудь?

Олег
17.09.2018
14:40:48
неа

vladimir
17.09.2018
14:41:04
сейчас покажу

Google

vladimir
17.09.2018
14:43:03
https://github.com/xamarin/Xamarin.Forms/blob/master/Xamarin.Forms.Core/ItemsView.cs#L19
ListView наследуется от этого
надо будет сделать подобную реализацию BindableProperty

Олег
17.09.2018
14:44:00
так я их же и делаю
ItemTemplate, ItemSource, ItemSelected, SelectedItem

vladimir
17.09.2018
14:44:18
добавил BindableProperty в свою View?

Олег
17.09.2018
14:44:37
так... нет

vladimir
17.09.2018
14:46:28
также скорее всего надо будет добавить ObservableCollection.CollectionChanged событие, и из него внутри вызывать OnPropertyChanged(nameof(ObservableCollection)) (или как там свойство названо)
но это не точно

Vlad
17.09.2018
14:48:53

vladimir
17.09.2018
14:50:44
вот и в этой BindableProperty надо будет добавить метод OnPropertyChanged как в ссылке выше
вот там-то и будет логика добавления View

Vlad
17.09.2018
14:53:06
там просто почему-то оповещение приходит только когда полностью изменилась коллекция. то есть было null а стало что-то или наоборот
и раз так, то я в Command обнуляю коллекцию, что дает оповещение в View и там уже PropertyChanged работает

Kirill
17.09.2018
14:53:49

Vlad
17.09.2018
14:54:40

Kirill
17.09.2018
14:55:37
как?..
if (_items is INotifyCollectionChanged newColleciton) {
newColleciton.CollectionChanged += NewColleciton_CollectionChanged;
}

Vlad
17.09.2018
14:56:35

Kirill
17.09.2018
14:57:25
Тогда в NewColleciton_CollectionChanged будут приходить события о изменениях коллекции, если это ObservableCollection

Google

Vlad
17.09.2018
15:00:06

Kirill
17.09.2018
15:00:35

Олег
17.09.2018
15:09:40

Kirill
17.09.2018
15:11:57
зачем там еще на PropertyChanged подписываться? Туда приходят события когда в коллекцию добавляется или удаляется объект. https://metanit.com/sharp/tutorial/4.13.php

Vlad
17.09.2018
15:24:02

vladimir
17.09.2018
15:24:44
нет
подписка на CollectionChanged должна быть в VM
во View просто чтение изменений
просто работаете напрямую с ItemsSource

Admin
ERROR: S client not available

vladimir
17.09.2018
15:25:57
и bindable должен быть IEnumerable<object>

Kirill
17.09.2018
15:25:58

vladimir
17.09.2018
15:26:04
aka ObservableCollection
но я не уверен, может сама ObservableCollection сообщит об этом, я сейчас с ходу не скажу

Kirill
17.09.2018
15:27:22

vladimir
17.09.2018
15:27:38
ну да

Kirill
17.09.2018
15:27:41

Google

Kirill
17.09.2018
15:27:50
ну грубо говоря - да. Но лучше обрабатывать все события и динамично создавать объекты, а не все пересоздавать по каждому чиху.

Олег
17.09.2018
15:27:51
А если это редактирование?

Kirill
17.09.2018
15:28:17

vladimir
17.09.2018
15:29:04
всё это должно быть в VM

Олег
17.09.2018
15:29:19
Редактирование элементов внутри списка, не добавление и удаление

vladimir
17.09.2018
15:29:30
а во View там будет прямая манипулия View элементов

Kirill
17.09.2018
15:29:40

vladimir
17.09.2018
15:29:47
исходя из текущих значение ItemsSource
да
потому что она привяжется к ItemsSource
а подписка на изменения коллекции и обработка их будет в VM
не во View
View надо представлением аниматься, а не логикой

Kirill
17.09.2018
15:30:39
Если я сделаю Add а коллекцию, то хочешь сказать view узнает об этом без лишних подписок?

vladimir
17.09.2018
15:30:59
подписаться внутри VM
а после обработки изменений коллекции вызвать OnPropertyChange("Collection") - это внутри метода, который подписался на события изменния коллекции внутри VM
и тогда View узнает

Kirill
17.09.2018
15:32:10

Vlad
17.09.2018
15:32:32

vladimir
17.09.2018
15:32:38